Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Matlab中行到任意列的求和_Arrays_Matlab_Matrix - Fatal编程技术网

Arrays Matlab中行到任意列的求和

Arrays Matlab中行到任意列的求和,arrays,matlab,matrix,Arrays,Matlab,Matrix,我试图对一个for循环进行向量化,该循环将一个向量和另一个向量定义的索引相加。有大量向量需要求和。这在for循环中很容易实现,但对我来说可能不是很明显,而是以矢量化的方式实现的 一个随机的例子是: t=兰特(10,5) c=randi([1,5],1,10) 基本上,我现在需要对每一行求和,直到对应的列由与当前行t相同的索引c给出。返回值将是行和到其各自列c(i)的向量。我已经探索了很多我能想到的求和函数的操作,但是没有一个能达到最终的结果 有什么建议吗?一种方法是使用创建要包含在每行总和中的值

我试图对一个for循环进行向量化,该循环将一个向量和另一个向量定义的索引相加。有大量向量需要求和。这在for循环中很容易实现,但对我来说可能不是很明显,而是以矢量化的方式实现的

一个随机的例子是:

t=兰特(10,5)

c=randi([1,5],1,10)

基本上,我现在需要对每一行求和,直到对应的列由与当前行t相同的索引c给出。返回值将是行和到其各自列c(i)的向量。我已经探索了很多我能想到的求和函数的操作,但是没有一个能达到最终的结果


有什么建议吗?

一种方法是使用创建要包含在每行总和中的值的掩码:

result = sum(t .* bsxfun(@le, 1:size(t,2), c(:)), 2);
在Matlab R2016b或更新版本中,您可以使用以下命令代替bsxfun:

result = sum(t .* (1:size(t,2) <= c(:)), 2)
result=sum(t.*(1:size(t,2)