我还在学习MATLAB的一些高级功能.
我有一个2D矩阵,我想总结所有行,除了i.
例如
1 1 1
2 2 2
4 4 4
Run Code Online (Sandbox Code Playgroud)
说我= 2,我想得到这个:
5 5 5
Run Code Online (Sandbox Code Playgroud)
我可以通过对所有行求和,然后减去第i行来实现,但我想知道是否有更快的方法使用MATLAB的索引/选择语法.
似乎将所有行相加,然后减去第i行,要快得多:
A=rand(500);
n = randi(500);
tic
for i=1:1e3
%sum(A([1:n-1 n+1:end], :));
sum(A)-A(n,:);
end
toc
Elapsed time is 0.162987 seconds.
A=rand(500);
n = randi(500);
tic
for i=1:1e3
sum(A([1:n-1 n+1:end], :));
end
toc
Elapsed time is 1.386113 seconds.
Run Code Online (Sandbox Code Playgroud)