在Matlab中总结两个矩阵的特殊列

时间:2017-03-11 10:27:29

标签: matlab

如何在不使用" for循环"的情况下进行以下计算(找到C)?

    [4, 2, 1, 7;
A =  0, 3, 4, 0;
     8, 0, 10, 12;
     11, 6, 2, 5];

    [1, 0, 0, 4;
B =  0, 3, 2, 0;
     5, 0, 8, 10;
     7, 2, 1, 2];

C(i,j)= B(i,j-1) - B(i,j+1) + A(i,j+1); %if j is not equal to 4(number of columns) and it is not equal to 1
C(i,j)= B(i,4) - B(i,j+1) + A(i,j+1); %if j is equal to 1
C(i,j)= B(i,j-1) - B(i,1) + A(i,1); %if j is equal to 4(number of columns)

1 个答案:

答案 0 :(得分:0)

您可以将数组指定为索引以同时处理多个元素:

A=[4,2,1,7;0,3,4,0;8,0,10,12;11,6,2,5];
B=[1,0,0,4;0,3,2,0;5,0,8,10;7,2,1,2];
C = zeros(size(A));
C(:,2:end-1) = B(:,1:end-2) - B(:,3:end) + A(:,3:end); %if j is not equal to 4(number of columns) and it is not equal to 1
j = 1;
C(:,j)= B(:,4) - B(:,j+1) + A(:,j+1); %if j is equal to 1
j = 4;
C(:,j)= B(:,j-1) - B(:,1) + A(:,1); %if j is equal to 4(number of columns)