Asked by mona
on 23 Apr 2013

I am working on this piece of code which is basically k-means clustering and I'm really stuck at a point where cell needs to be reshaped into matrix:

vec_dist(i)=dist(s(i),reshape(cell2mat(codebook),L,length(codebook)));

with error: Error using reshape To RESHAPE the number of elements must not change.

Any help would be highly appreciated.

*No products are associated with this question.*

Answer by Matt J
on 23 Apr 2013

Do you understand why the following example produces an error? The error your code gives is due to the same thing.

>> reshape(rand(2,3),5,1) Error using reshape To RESHAPE the number of elements must not change.

Show 2 older comments

Matt J
on 23 Apr 2013

Did you understand the example I posted? The error you're getting pertains to the sizes and values of the arguments, not their data type.

By entering the values of L and length(codebook), RESHAPE expects that the array you're trying to reshape has L*length(codebook) elements in it. That is apparently not the number of elements in the array cell2mat(codebook). If this surprises you, use DBSTOP as I suggested to see how many elements there actually are.

Opportunities for recent engineering grads.

## 0 Comments