这是我的第一个需要MatLab的任务,所以我只是学习如何使用它。 正如我的问题所述,我的代码中必定存在一些错误,它使得点而不是看起来类似于平方根函数的函数。
h=0.1;
tf=1;
samples = round(tf/h+1);
x = ones (samples, 1);
y = zeros (samples, 1);
y_true = zeros (samples, 1);
hold on;
for n=1: samples ;
t=(n-1)/10 +h;
y_true = 1-exp (-t);
plot (t,y_true);
end;
hold off;
t的值为0
,0.1
,0.2
,0.3
,依此类推,直至1
。就在发布这个问题之前,我发现了hold()
的用途,因为在此之前我会在中间找到一个点。谢谢你的时间。
答案 0 :(得分:1)
您可以同时绘制所有点:
% Parameters
h=0.1;
tf=1;
% Process
samples = round(tf/h+1);
x = ones (samples, 1);
y = zeros (samples, 1);
y_true = zeros (samples, 1);
n = 1:samples;
t = (n-1)./10+h;
y_true = 1-exp(-t);
% Plot
figure
plot(t,y_true,'b-*');
答案 1 :(得分:0)
从这段代码中可以清楚地看出,您打算构建一个包含所有点的向量:
x = ones(samples, 1);
y = zeros(samples, 1);
y_true = zeros(samples, 1);
要做到这一点,你可以使用矢量计算,如tashuhka所示,或者只是每次通过for循环存储一个元素。你可以用下标来做到这一点:
for n= 1:samples
t(n) = (n-1)/10 + h;
y_true(n) = 1-exp(-t);
end
现在,您可以在for循环之外的一个步骤中绘制整个矢量。
最终代码:
h=0.1;
tf=1;
samples = round(tf/h+1);
x = ones(samples, 1);
y_true = zeros(samples, 1);
for n = 1:samples
t(n) = (n-1)/10 +h;
y_true(n) = 1-exp(-t);
end
plot(t, y_true);