周长。
但有没有其他方法可以总结或矢量化我原始和简单的脚本?我问这个请求是因为我的 真实 </跨度> 矩阵非常大并且使用“for”增加了 时间 </跨度> 计算 </跨度> 。
谢谢。
a1 = [1 1 0 1 0 1; 0 1 1 0 0 1; 1 1 0 1 0 1; 1 1 0 0 1 0; 0 0 0 1 1 1]M = 5N = 6CMP =零(M,N)CMP1 =零(M,N)对于i = 1:m-1 对于j = 1:n 如果a1(i,j)== a1(i + 1,j
这应该是非常有效的 -
%// Case1 and case 2 matches case1_matches = a1(1:end-1,:) == a1(2:end,:) & a1(1:end-1,:)==1 case2_matches = a1(:,1:end-1) == a1(:,2:end) & a1(:,1:end-1)==1 %// Get sum of those matches for the final output, equivalent to your pc out = sum(case1_matches(:)) + sum(case2_matches(:))
你可以更换 sum(..(:)) 同 nnz() ,但我怀疑它会比任何更好 sum 在运行时性能方面与...相关 的 基准 sum 反对 nnz 强> 。
sum(..(:))
nnz()
sum
nnz