怎么用matlab画李萨如形,matlab使用for循环画函数
温馨提示:这篇文章已超过531天没有更新,请注意相关的内容是否还可用!
为什么会发生这种情况……
使用plot(x(i),y)绘制100个单点(每次迭代一个),默认情况下不会显示它们。因此情节看起来是空的。
解决方案1:矢量化计算和直接绘图
我认为你打算画一条连续线。在这种情况下,不需要for循环,因为您可以直接在MATLAB中计算和绘制矢量。所以下面的代码可能就是你想要的:
x = linspace(0,2*pi,100);
y = sin(x);
plot(x,y);
请注意,y是一个向量和x,而y(n)对于所有sin(x(n))都等于n。如果您想绘制点本身,请在调用plot时使用LineSpec – 语法,如此1:
plot(x,y,\’*\’);
1)其他类型的点也是可能的,请参阅上面的链接文档。
解决方案2:计算for循环中的值并在之后绘制
如果你想计算for循环中的值并在之后绘制它:活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看预先分配所需的变量(在这种情况下为y),计算for循环中的值,最后用计算后只需一个命令。
x = linspace(0,2*pi,100);
y = zeros(size(x));
for i = 1:numel(x)
y(i) = sin(x(i));
end
plot(x,y);
解决方案3:在计算时动态更新绘图
如果你坚持在每次迭代中进行绘图,那么Solution 2中的前一个代码可以扩展如下:创建一个数字,添加一个空的'绘制它并存储其句柄。在for循环中计算值并将它们添加到y – 向量,如上所示。最后一步,您可以更改其XData和YData属性并调用drawnow来更新图表。请注意,每次在for循环中调用plot都会造成不必要的代价,而且我不推荐它。
% create figure and plot
figure;
ph = plot(0,0);
ax = gca;
set(ax,\’XLim\’,[0,2*pi]);
set(ax,\’YLim\’,[-1,1]);
% calculate and update plot
x = linspace(0,2*pi,100);
y = zeros(size(x));
for i = 1:numel(x)
y(i) = sin(x(i));
set(ph,\’XData\’,x(1:i));
set(ph,\’YData\’,y(1:i));
drawnow;
end
36974928
《怎么用matlab画李萨如形,matlab使用for循环画函数》来自互联网同行内容,若有侵权,请联系我们删除!
