Accumarray error: First input SUBS must contain positive integer subscripts.
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Bianca Elena Ivanof
am 27 Jun. 2016
Kommentiert: Sean de Wolski
am 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 Kommentare
Akzeptierte Antwort
Sean de Wolski
am 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 Kommentar
Weitere Antworten (1)
Andrei Bobrov
am 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 Kommentare
Sean de Wolski
am 30 Jun. 2016
Look at the documentation for examples and descriptions of what the pieces are:
doc unique
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!