动态矢量创建

时间:2016-01-26 14:54:06

标签: arrays matlab

我正在尝试根据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)];

它是用于识别系统的函数....

1 个答案:

答案 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作为变量,则应考虑使用其他名称。如果你用英文写作,我们也更容易理解。所以一般来说,在这里发帖时更喜欢英文评论。