为什么代码没有给出正确的结果 Matlab?

Why code is not giving proper results Matlab?

我知道这类问题以前可能有人回答过,但我是 matlab 的初学者,所以请多多包涵我的小问题。
我想从一组值生成一个 11*12 矩阵。我有五个不同的向量,名为 X、Y、Z、u、v。
我的代码是:
A=zeros(12,11);

for i=1:6
A=[X(i) Y(i) Z(i) 1 0 0 0 0 (-u(i)*X(i)) (-u(i)*Y(i)) (-u(i)*Z(i)),0 0 0 0 X(i) Y(i) Z(i) 1 (-v(i)*X(i)) (-v(i)*Y(i)) (-v(i)*Z(i))];
end

在这里,我想为每次迭代填充两行。所以一共变成了12行。但问题是
1. 它给我 22*1 矩阵
2. 给出错误的值
这意味着它在我不想要的每次迭代中附加列。
请帮我找一个11*12的矩阵。谢谢

您在每次迭代中都将一个全新的矩阵分配给 A,因此这将导致您得到的结果。

您想要的是每次迭代替换行。您可以索引矩阵来执行此操作:

A(1,:) = [1 2 3 4];

例如,这会将第一行替换为给定的值。所以你可以使用

A(i*2-1,:)=[X(i) Y(i) Z(i) 1 0 0 0 0 (-u(i)*X(i)) (-u(i)*Y(i)) (-u(i)*Z(i))];
A(i*2,:)=[0 0 0 0 X(i) Y(i) Z(i) 1 (-v(i)*X(i)) (-v(i)*Y(i)) (-v(i)*Z(i))];

不幸的是,我现在没有 Matlab,看看您是否可以通过索引 A(i*2-1:i*2,:) 将它们合并成一行。