我想在不使用任何循环的情况下创建一个矩阵,就像我在MATLAB 2011a中为形成矩阵n(x,y)所做的以下程序一样。
segment1和segment2具有相同的维度(可以取任意两个矩阵)。
segment1 = [1 2 3;4 5 6];
segment2 = [5 2 6;9 1 2];
seg1_max = max(max(segment1));
seg2_max = max(max(segment2));
n = zeros(seg1_max, seg2_max);
i = 1; j = 1;
while i<=size(segment1, 1)        
    while j<=size(segment1, 2)    
        x = segment1(i, j);
        y = segment2(i, j);
        n(x,y) = n(x,y)+1;
        j = j+1;    
    end;
i = i+1; j = 1;
end;我也使用for loop编写了这个程序,但是我想不使用循环操作来获得矩阵n(x,y)。
发布于 2012-09-08 11:27:57
函数accumarray可以用于此目的。给定您的segment1和segment2,下面的代码将计算与您的n相同的m
x = segment1(:);
y = segment2(:);
m = accumarray([x y], ones(size(x)));https://stackoverflow.com/questions/12327589
复制相似问题