在循环中写一个矩阵

时间:2016-02-25 06:04:07

标签: matlab loops matrix

我有一系列相等长度的数组,并希望为这些数据点制作一个矩阵,并执行某种操作,例如乘以矩阵。

a=ones(1,10);
b=3*ones(1,10);
c=zeros(1,10);

for i=1:10
    A(i)=[a(i) a(i); 
          b(i) b(i)];
    B(i)=[c(i) c(i)];
    C(i)=B(i)*A(i);
end

这可不使用细胞吗?

1 个答案:

答案 0 :(得分:2)

A = zeros(2,2,length(a));
B = zeros(length(a),:);
C = zeros(size(B));

for i=1:10
    A(:,:,i)=[a(i) a(i); 
              b(i) b(i)];
    B(i,:)=[c(i) c(i)];
    C(i,:)=B(i,:)*A(:,:,i);
end

请注意,您可以使AB无循环:

aa = permute(A, [3,2,1]);
bb = permute(B, [3,2,1]);
A = [aa,aa;bb,bb];

B = [c.', c.'];