我试图绘制一个函数,它会告诉我给定输入的行列式的值。
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)
这就是我得到的。
我意识到只有一个y值,但我不知道为什么。如何使MATLAB显示所有x
值的行列式值?
答案 0 :(得分:1)
可能你想要达到这样的目的:
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);
答案 1 :(得分:0)
正如linear algebra所告诉你的那样:矩阵的决定因素是一个数字。因此,您只有一个y
值,因此只能绘制一个点。
我认为您正在寻找每个x
值的决定因素,在这种情况下,使用for
上的y
循环计算每个决定因素,而不是只有一个。试图以这种方式计算一种3D矩阵(嗯,一系列x
值的二维矩阵,基本上是3D)并不起作用。 MATLAB使用x
的最后一个值并忽略其余值来计算你的 3 -by- 3 矩阵,并由此来计算它。' ll计算行列式,即单个数字。