初学者 Matlab 函数只绘制零
Beginner Matlab function only plotting zero
我的一个 Signals 类 让我陷入了深渊。我正在努力学习 Octave,这样我就可以在家里完成教授要求的 Matlab 作业(我还没有接受过任何 Matlab 教育)。
我已经尽可能多地阅读了,但我似乎无法弄清楚为什么这个函数似乎只有 return 0。我想我缺少一些基本的东西,但我不知道是什么。
t = [-1:0.1:5];
% (a): The Unit-step Function u(t)
function u = u (t)
if(t >= 0)
u = 1;
else
u = 0;
end
end
plot(t, u(t));
问题出现是因为函数输入的是向量,returns是标量,所以plot画错了。
一种解法:
一个可能的解决方案是用零创建新向量 (),然后通过使用 if 选择输出来使用 for 进行迭代。
t = [-1:0.1:5];
% (a): The Unit-step Function u(t)
function u = u (t)
u = zeros(size(t));
for i=1:length(t)
if(t(i) >= 0)
u(i) = 1;
else
u(i) = 0;
end
end
end
plot(t, u(t));
第二种方案:
另一种解决方案是使用 matlab/octave 的属性来处理矢量运算。
t = [-1:0.1:5];
% (a): The Unit-step Function u(t)
function u = u (t)
u = t>=0
end
plot(t, u(t));
我的一个 Signals 类 让我陷入了深渊。我正在努力学习 Octave,这样我就可以在家里完成教授要求的 Matlab 作业(我还没有接受过任何 Matlab 教育)。
我已经尽可能多地阅读了,但我似乎无法弄清楚为什么这个函数似乎只有 return 0。我想我缺少一些基本的东西,但我不知道是什么。
t = [-1:0.1:5];
% (a): The Unit-step Function u(t)
function u = u (t)
if(t >= 0)
u = 1;
else
u = 0;
end
end
plot(t, u(t));
问题出现是因为函数输入的是向量,returns是标量,所以plot画错了。
一种解法:
一个可能的解决方案是用零创建新向量 (),然后通过使用 if 选择输出来使用 for 进行迭代。
t = [-1:0.1:5];
% (a): The Unit-step Function u(t)
function u = u (t)
u = zeros(size(t));
for i=1:length(t)
if(t(i) >= 0)
u(i) = 1;
else
u(i) = 0;
end
end
end
plot(t, u(t));
第二种方案:
另一种解决方案是使用 matlab/octave 的属性来处理矢量运算。
t = [-1:0.1:5];
% (a): The Unit-step Function u(t)
function u = u (t)
u = t>=0
end
plot(t, u(t));