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

Matlab 在一系列值上绘制矩阵的行列式,matlab,matrix,linear-algebra,Matlab,Matrix,Linear Algebra,我试图画一个函数,它会告诉我给定输入行列式的值 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值的行列式值?正如我所说的:矩阵的行列式是一个数字。因此,您只有一个y值,因此只能绘制一个点 我假设您正在查找每个x值的行列式,在这种

我试图画一个函数,它会告诉我给定输入行列式的值

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
值的行列式值?

正如我所说的:矩阵的行列式是一个数字。因此,您只有一个
y
值,因此只能绘制一个点


我假设您正在查找每个
x
值的行列式,在这种情况下,使用
y
上的
for
循环来计算每个行列式,而不是只计算一个。试图以这种方式计算某种3D矩阵(好吧,一个2D矩阵在
x
值范围内,基本上是3D)是行不通的。MATLAB将使用
x
的最后一个值,忽略其余值来计算3乘3矩阵,并从中计算行列式,即单个数字。

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

 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);

对于for循环,我获得了更多的值,但图形仍然是空的。你知道为什么吗?@roffensive编辑问题以显示带有for循环的代码,这样我们就可以进行look@roffensive可能是因为您的
for
循环错误。因为我不是千里眼,所以我不能多说,除非你真的展示出错误的代码。此外,这是一个基本的for循环,所以如果您不能正确编写,我强烈建议您查看