【发布时间】:2014-02-23 08:10:58
【问题描述】:
我有向量A = [2 3 1] 和矩阵
B = [0 1 2;
3 4 5;
6 7 8];
我希望能够使用 A 中的元素作为逻辑索引器(开始和结束值)对 B 中的值求和。更具体地说,我希望我的代码执行这些操作:
sum(B(1:1,1),sum(B(1:2,2),sum(B(1:3,3))为得到最终向量C,这样
C = [3 12 2]
我有大量数据,所以我想避免使用 for 循环,因为它们似乎会大大减慢代码速度。
提前致谢,
【问题讨论】:
-
您是如何获得
C的这些值的? -
@horchler:我的回答很合适,我想这就是 OP 所追求的。我认为你的答案(整体上)比我的好,所以如果你更新你的,我会删除它=)(假设我是对的)
-
@RobertP.:不客气,如果你愿意的话。是不是 OP 颠倒了这两个指数?我只是想从
sum(B(1:2,2))中取出3。 -
@horchler:我想应该是
[sum(B(1:2,1), sum(B(1:3,2), sum(B(1:1,3))]。 (列号的增量为 1,而行由A索引。对吗?(另外,我注意到 I 在我的答案中颠倒了索引。哎呀...更新了)无论如何:+1 给你,很好的答案! -
非常感谢大家提供的信息!与我之前编写的“代码”相比,使用您的提示能够显着减少计算时间!