我仍在学习 MATLAB 中的一些高级功能。

我有一个二维矩阵,我想对除 i 之外的所有行求和。

例如

1 1 1
2 2 2
4 4 4

说 i = 2,我想得到这个:
5 5 5

我可以通过对所有行求和然后减去行 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.

关于matlab - 如何对 MATLAB 中的所有其他行求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13523443/

10-16 19:05