我遇到以下代码问题。我想在下面的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代码。
答案 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_bound
和u
。这很方便,因为在MATLAB中扩展现有向量非常耗费内存和时间,因为你知道它们会有多大(与xval
相同数量的元素),你可以使用它。
我还在循环外面进行了plot
调用,以防止你在1个绘图中绘制21条蓝线。