Accumarray error: First input SUBS must contain positive integer subscripts.
31 views (last 30 days)
Show older comments
Bianca Elena Ivanof
on 27 Jun 2016
Commented: Sean de Wolski
on 30 Jun 2016
Hello,
The accumarray function is causing me problems - the error is embedded within the question. Attached you find a sample file and below you find the piece of code I wrote:
temp_raw_JE50=X0012_50(:,20)-X0012_50(:,17); % raw overall JE50
temp_AO50=ismember(X0012_50(:,13),0); % AO trials (0's) in col. 13 of temp_file_50
temp_raw_JE50AO= accumarray(temp_raw_JE50,temp_AO50); % raw JE50 for AO trials only
Could you please be so kind as to help me?
Bianca
0 Comments
Accepted Answer
Sean de Wolski
on 27 Jun 2016
[uval,~,subs] = unique(temp_raw_JE50);
accumarray(subs,vals)
You most likely want to accumulate by the unique values. Since these aren't necessarily positive integer indices, use unique first and pass the indices into accumarray.
1 Comment
More Answers (1)
Andrei Bobrov
on 28 Jun 2016
[uval,~,subs] = unique(X0012_50(:,20)-X0012_50(:,17));
temp_raw_JE50AO = accumarray(subs,~X0012_50(:,13));
out = [uval, temp_raw_JE50AO];
4 Comments
Sean de Wolski
on 30 Jun 2016
Look at the documentation for examples and descriptions of what the pieces are:
doc unique
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!