假设我有一个n x m
矩阵和一个函数f
,它在两行之间做了一些事情。如何创建一个循环,以便所有行都使用该函数f
相互操作。
实施例:
设f
为汇总行的函数。我们假设我们有一个4x4
矩阵。
所以我想总结row 1
与row 2
,row 2
与row 3
,row 1
与row 4
等等。直到所有行都与之互动为止彼此。
答案 0 :(得分:0)
带循环的版本,假设f
是一个接受两行M
作为两个参数的函数:
count = 0;
result = zeros((n-1)*n/2,1);
for r1 = 1:n-1
for r2 = r1+1:n
count = count + 1;
result(count) = f(M(r1,:),M(r2,:));
end
end
没有循环的版本:
N = nchoosek(1:n,2);
result = arrayfun(@(r1,r2) f(M(r1,:),M(r2,:)), N(:,1), N(:,2));