在Matlab中通过for循环乘以向量

时间:2015-03-21 23:38:13

标签: matlab vector

我有3个向量,我想将它们的每一个与它的转置相乘,例如我有A1 = [ - 1 1 -1 1],我想找到At1 = A1'* A1。但是,我有几个向量,将添加3个以上的向量。所以,我构建了一个for循环为我做这个,但它不起作用,我不知道为什么。以下是我的代码:

A(1)=[-1 1 -1 1];
A(2)=[1 1 1 -1];
A(3)=[-1 -1 -1 1];

for i=1:3
    At(i)=A(i)'*A(i)
    i=i+1 
end

At=At1+At2+At3

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

你可以达到你想要的效果:

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

At = trace(A * A'); %sum of the A(i,:)*A(i,:)' 

PS。不要在循环中执行i = i + 1,它会自动为您完成。