如何优化这个简单的matlab代码?

如何优化这个简单的matlab代码?,matlab,Matlab,很抱歉这个模糊的标题,这可能是一个被问到的问题,不幸的是,我不知道如何解释我要做什么。我正在尝试转换这个matlab代码 theta = linspace(0,2*pi,1000); x = zeros(1000); y = zeros(1000); u = 1; for i = linspace(0,2*pi,1000) x(u) = (1 + cos(i))*cos(i); y(u) = (1 + cos(i))*sin(i); u = u + 1; end plot

很抱歉这个模糊的标题,这可能是一个被问到的问题,不幸的是,我不知道如何解释我要做什么。我正在尝试转换这个matlab代码

theta = linspace(0,2*pi,1000);
x = zeros(1000);
y = zeros(1000);
u = 1;
for i = linspace(0,2*pi,1000)
    x(u) = (1 + cos(i))*cos(i);
    y(u) = (1 + cos(i))*sin(i);
    u = u + 1;
end
plot(x,y)
变成这样:

theta = linspace(0,2*pi,1000);
x = (1 + cos(theta))*cos(theta);
y = (1 + cos(theta))*sin(theta);
end
plot(x,y)

但是因为我用了两次矩阵θ,它不知道怎么做。我以前见过这样写的代码,但我不记得我做错了什么,有人能给我指出正确的方向吗?

David是正确的;那辆车又罢工了。此代码将在以下情况下工作:

theta = linspace(0,2*pi,1000);
x = (1 + cos(theta)).*cos(theta);
y = (1 + cos(theta)).*sin(theta);
plot(x,y)

尝试使用*来使用元素对元素的乘法,而不是矩阵乘法,矩阵乘法就是*。