Asked by Jacob Moses
on 12 Jan 2013

Hello, I am attempting to separate a large matrix into two parts for kernel formation for clustering with a kernel k-means algorithm. While I would ordinarily jus reshape it into a third dimension, this option is impossible given that the number of columns in the matrix in question is odd (24021). I have been unable to perform any of the things that I have seen before, such as indexing. Below is the method I tried, which returned the above error message.

EDU>> for n=1:24041 if n<=12021 split{1}(n)=test(:,n); elseif n>12021 split{2}(n-12021)=test(:,n) end end Subscripted assignment dimension mismatch.

If anyone can tell me what is going on, I would greatly appreciate it. Thanks in advance.

Answer by Walter Roberson
on 12 Jan 2013

Accepted answer

split{1} = test(:,1:12021); split{2} = test(:,12022:end);

Jacob Moses
on 12 Jan 2013

This worked perfectly, and was easiest for me to understand. Thank you so much!

Answer by José-Luis
on 12 Jan 2013

Edited by José-Luis
on 12 Jan 2013

You are probably trying to assign a matrix to a scalar:

split{1}(n)=test(:,n);

*split{1}(n)* is most likely a scalar

*test(:,n)* is probably a column vector

Walter Roberson
on 12 Jan 2013

test(:,1) would have to be a row vector.

José-Luis
on 12 Jan 2013

Now I see what you meant. I need some coffee.

Related Content

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments