这一句:
fin=[[0:1/2000:1/2000][1:-1/500:1/500]];
语法不对,主要问题是“][”不能连在一起,可以在中间加空格或逗号,如
fin=[[0:1/2000:1/2000] [1:-1/500:1/500]];
或者
fin=[[0:1/2000:1/2000],[1:-1/500:1/500]];
都可以。意思是由两个向量拼接成为一个更大的向量fin。这两个向量分别是0:1/2000:1/2000和1:-1/500:1/500,都是按照“开始值:步长:结束值”的格式写的,属于MATLAB最基础的内容,没更多可解释的了。
不过根据后面的代码看,表达式很可能写错了,猜测作者本意(这个不是语法错误,只能猜测),前一个向量应改为0:1/2000:1-1/2000,这样生成的向量有2000个元素,再加上1:-1/500:1/500有500个元素,拼接到一起就是2500个元素。
接下来的两句
t=0:4999;
value=[fin fin];
生成一个时间向量t(有5000个元素),value由两个fin拼接,也有5000个元素,每个时间对应一个数据的值,就可以作为输入信号了。
不过,最后一句
jaws=[t'value'];
又错了,同样是语法错误,中间缺少一个空格或逗号,即应为
jaws=[t' value'];
意思是,两个行向量t和value转置成列向量再拼接,成为5000x2的矩阵,刚好符合from workplace模块的要求。
完整的代码应为
fin=[[0:1/2000:1-1/2000],[1:-1/500:1/500]];
t=0:4999;value=[fin fin];
jaws=[t' value'];
如果用
plot(t,value)
画一下输入信号的形状,如图所示
最后应该说明一下,要产生这样的锯齿波,Simulink中完全有很多更好的方式,上面的做法实在算不上高明。