finding unknown values in a column by using the indices (indexes) of known values.
显示 更早的评论
Hello, I'm struggling a lot with some of the indexing methods. Right now I have the next matrix:
1.5000 1.7024
1.5000 1.3119
1.5000 1.3122
0.5000 0.8158
0.5000 1.1760
(it's actually a 200 by 2 matrix, but I have shortened it to make things clearer)
The values in row 1 have been provided by linspace(0.5, 1.5, 5) and the values in row 2 have been entered by the user (they are the user's reaction times, and the latter [the values in col 1] are the stimuli durations).
What I'm trying to do is to find all the user's input when the duration was 1.5000 and find the mean of those values.
So far I used: [r,c]=find(mat==1.5000), and got:
r =
1
2
3
10
17
What I need now is the values next to those rows (that is the ones in col 2) and find their mean.
Hope I was clear and concise. Thanks in advance
采纳的回答
更多回答(2 个)
Sean de Wolski
2012-7-17
accumarray time! (happy time :) )
x =[1.5000 1.7024
1.5000 1.3119
1.5000 1.3122
0.5000 0.8158
0.5000 1.1760]
[y,~,idxu] = unique(x(:,1)); %indexes of each row into each unique value
y(:,2) = accumarray(idxu,x(:,2),[],@mean) %their mean
7 个评论
Juan Pablo
2012-7-17
Juan Pablo
2012-7-17
Juan Pablo
2012-7-17
Sean de Wolski
2012-7-17
What do you have defined as x? If you clear you workspace and copy the above in, it works.
Juan Pablo
2012-7-17
Juan Pablo
2012-7-18
Sean de Wolski
2012-7-18
doc unique
doc accumarray
!
Elizabeth
2012-7-17
编辑:Walter Roberson
2012-7-18
Probably not as efficient as those above, but this is the simplest way I always tried to do it.
j= find(row1==1.5);
for k=1:length(j)
d(k)=c(j(k));
end
meanvalues=mean(d)
5 个评论
Sean de Wolski
2012-7-17
编辑:Sean de Wolski
2012-7-17
why not just:
m = mean(x(x(:,1)==1.5,2))
Juan Pablo
2012-7-18
Juan Pablo
2012-7-18
Walter Roberson
2012-7-18
row1 = mat(:,1);
It is a column, but Elizabeth has called it a row because you confused rows and columns when you phrased the question.
Juan Pablo
2013-9-24
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!