我正在尝试根据n
动态创建一个向量(例如1或4)。如果我的n
更大,我需要在矢量中包含更多值。
for i=1:(N-n)
yvecT(i)=y(n+i); % Achtung, Zeilenvektor
for k=n:-1:1
F(i-1+n,:)=[-y(i) -y(i-k) u(i) u(i-k)];
end
end
%n=1 F(i,:)=[-y(i) u(i)];
%n=2 F(i,:)=[-y(i) -y(i-1) u(i) u(i-1)];
%n=4 F(i,:)=[-y(i) -y(i-1) -y(i-2) -y(i-3) u(i) u(i-1) u(i-2) u(i-3)];
它是用于识别系统的函数....
答案 0 :(得分:1)
您应该从问题中的链接发布for-loop(带有if语句),并声明您希望它适用于仲裁n
。这会让每个人都明白你的问题。我认为最简单的方法是使用子引用。所以如果n==2
我们没有
F(i-1,:)=[-y(i) -y(i-1) u(i) u(i-1)];
而是
F(i-(n-1),:)=[-y(i:-1:(n-1)) u(i:-1:(n-1))];
这看起来更混乱,但它适用于任何仲裁n
。关于代码的其他一些评论。变量i
也是返回虚数单位的函数。通过命名变量i
,您可以重载此函数。建议的方法是使用1i
作为虚构单位,因此它并不重要,但如果您不一定需要i
作为变量,则应考虑使用其他名称。如果你用英文写作,我们也更容易理解。所以一般来说,在这里发帖时更喜欢英文评论。