Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jonathan Bijman
am 10 Jun. 2019
Kommentiert: Jonathan Bijman
am 11 Jun. 2019
Dear community, help with this.
Voc=Clean(:,7);
a=Voc(1:3);
j=1;k=9;
t=length(Voc);
for i=1:t;
v= Voc(j:k,1);
a=cellfun(@mean,v);
Voc_p(i,1)=a;
j=j+9;
k=k+9;
end
A datatable was convert into a array previously and appears this error:
Unable to perform assignment because the indices on the left side are not compatible with the size of the
right side.
Error in Prueba_1 (line 29)
Voc_p(i,1)=a;
How can I fix this?
Thank u
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 10 Jun. 2019
v= Voc(j:k,1);
That is creating a non-scalar cell array
a=cellfun(@mean,v);
That is going through each cell member and taking the mean of each. The fact that you did not get an error on this line tells us that each cell member was a scalar or a vector, not empty and not 2 D or more. The end result will be a vector of length k-j+1 = 9.
Voc_p(i,1)=a;
You are trying to store that vector of length 9 into a single location, Voc_p(i,1)
13 Kommentare
Walter Roberson
am 11 Jun. 2019
You moved the *9 to inside the floor() when it needs to be outside.
lastidx = floor(nrow/9) * 9;
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!