如何在for循环中创建结果的向量

时间:2015-09-24 11:25:34

标签: matlab for-loop plot

我遇到以下代码问题。我想在下面的for循环中存储我创建的所有值,以便我可以绘制它的图。我尝试了几件事,但没有任何作用。有没有人知道一个简单的方法来创建结果的矢量,然后绘制它们?

dx=0.1;
t=1;
e=1;

for x=-1:dx:1
lower_bound=-100;
upper_bound=x/(sqrt(4*t*e));
    e=1;
u=(1/sqrt(pi))*quad(@integ,lower_bound,upper_bound);
plot(x,u)
hold on
end

hold off

我想尽可能多地使用这个matlab代码。

1 个答案:

答案 0 :(得分:0)

dx=0.1;
t=1;
e=1;
xval=[-1:dx:1].';
upper_bound = zeros(numel(xval),1);
u = zeros(numel(xval),1);
for ii=1:numel(xval)
x = xval(ii)
lower_bound=-100;
upper_bound(ii,1)=x/(sqrt(4*t*e));
u(ii,1)=(1/sqrt(pi))*quad(@integ,lower_bound,upper_bound(ii));
end
figure;
plot(xval,u)

通过在语句后面添加(ii),它可以将变量保存在数组中。我没有在lower_bound上使用它,因为它是常量。

请注意,我首先创建了一个数组xval,并在ii中使用整数调用它,因为在Python中,subscriptindices必须是正整数。我还通过在循环执行之前创建零矩阵来初始化upper_boundu。这很方便,因为在MATLAB中扩展现有向量非常耗费内存和时间,因为你知道它们会有多大(与xval相同数量的元素),你可以使用它。

我还在循环外面进行了plot调用,以防止你在1个绘图中绘制21条蓝线。