Obatin the sum from reading columns from 2 matrices

1 次查看(过去 30 天)
Hi,
I have matrix A=(5479 x 378) and RowID matrix (15 x 2). I need to get the sum for each column of A for RowIDs 1:15
for id=1:378
for ix=1:1:15
St(ix,1)=sum(new(:,id)([RowID(ix,1):RowID(ix,2)],:));
end
end
Error: ()-indexing must appear last in an index expression.
This is the error I am getting when I run the above code. Can somebody help me to fix that please?
Thanks in advance.
  3 个评论
Damith
Damith 2014-6-17
编辑:Damith 2014-6-17
Thanks. Here is an simple example. I need to get the sum of first and second row of new matrix for all columns in new refering to the row numbers from RowID matrix. Hope you understand now. please let me know if you need more clarification.
I know there is some error in my coding so I need to fix that. My code does not work. I must call the row numbers from this RowID matrix since I have large data set.
Input:
new =
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0.1 0.8 0.5 0.1 0 0.4 1 1.4 1 0.5
0 0.1 0 0 0.1 0 0 0 0 0
0 0.1 0 0 0 0 1.4 0 0 0.2
0 0 0 0 0 0 0 0 0 0
RowID = [1 2; 3 4; 5 6; 7 8; 9 10];
for id=1:10
for ix=1:1:10
St(ix,1)=sum(new(:,id)([RowID(ix,1):RowID(ix,2)],:));
end
end
exmple answer for summation of 7 and 8 row across all columns of new matrix is
output=
0.1 0.9 0.5 0.1 0.1 0.4 1.0 1.4 1.0 0.5
the cyclist
the cyclist 2014-6-17
Sorry for continuing to ask questions, but I am trying not to waste your time with an inaccurate solution.
Could you ever have something like
RowID = [1 5; 6 8]
where you are summing more than two consecutive rows?

请先登录,再进行评论。

回答(1 个)

the cyclist
the cyclist 2014-6-17
Does this do what you want?
numberSets = size(RowID,1);
St = zeros(numberSets,size(new,2));
for ns = 1:numberSets
St(ns,:) = sum(new(RowID(ns,1):RowID(ns,2),:),1);
end

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by