代码之家  ›  专栏  ›  技术社区  ›  roffensive

绘制一系列值上矩阵的行列式

  •  0
  • roffensive  · 技术社区  · 7 年前

    我试图绘制一个函数,它将告诉我给定输入行列式的值。

    x = 0:0.1:1
    y = det([(cos(x)/x)^2,2*(cos(x)/x),2*(cos(x)/x);2*(cos(x)/x),8,8;2*(cos(x)/x),8,12])
    figure
    plot(x,y)
    

    这是我得到的。

    enter image description here

    我已经意识到只有一个y值,但我不知道为什么。如何让MATLAB显示所有的行列式值 x 价值观

    2 回复  |  直到 7 年前
        1
  •  1
  •   sswwqqaa    7 年前

    您可能希望实现以下目标:

     x = linspace(0,1);
    for i = 1:numel(x)
    y(i) = det([(cos(x(i))/x(i))^2,2*(cos(x(i))/x(i)),2*(cos(x(i))/x(i));2*(cos(x(i))/x(i)),8,8;2*(cos(x(i))/x(i)),8,12]);
    end
    plot(x,y);
    
        2
  •  0
  •   Adriaan Decoder    7 年前

    linear algebra 我会告诉你:矩阵的行列式是一个数字。因此,您只有一个 y 值,因此只能绘制一个点。

    我想你是在寻找 x 值,在这种情况下,使用 for 在您的 y 计算每个行列式,而不是只计算一个行列式。尝试用这种方法计算一种3D矩阵 x个 值,基本上是3D)不起作用。MATLAB将使用 x个 忽略其余部分来计算 3. -根据- 3. 矩阵,并由此计算行列式,即单个数字。