Unable to perform assignment because the left and right sides have a different number of elements
2 views (last 30 days)
Show older comments
Hello,
I want to separate this char string into groups of 4 letters.
cadena='0045003e003500440045003e003500440041003f00430040004f'
r_num=num2str(zeros(length(cadena),1));
for i=1:length(cadena)
r_num(i)=cadena(i); % I create a column array which contains the components separately
end
seccion=num2str(zeros(ceil(length(cadena)/4),1));
for j=1:length(cadena)-4
seccion(j)=strcat(r_num(j),r_num(j+1),r_num(j+2),r_num(j+3)); %then I tried to join the components again in groups of four
j=j+4;
end
However, an error appeared:
Unable to perform assignment because the left and right sides have a different number of elements.
Error in Untitled4 (line 14)
seccion(j)=strcat(r_num(j),r_num(j+1),r_num(j+2),r_num(j+3));
(I also have tried to use strsplit or strtok functions, but they are for texts separated by commas)
If you find the solution, or a better way of doing it, please help me
Thanks
0 Comments
Answers (1)
Ameer Hamza
on 23 Apr 2020
Edited: Ameer Hamza
on 23 Apr 2020
seccion(j) is an element of a scalar array. It can only hold a single character. If you want to store multiple characters, then you should use cell arrays. Check the following code. I have also fixed a few other issues. I have also given a one-liner version of your code, which avoids all these for loops
cadena ='0045003e003500440045003e003500440041003f00430040004f';
r_num=num2str(zeros(length(cadena),1));
for i=1:length(cadena)
r_num(i)=cadena(i); % I create a column array which contains the components separately
end
seccion=cell(ceil(length(cadena)/4),1);
for j=1:4:length(cadena)
seccion{(j+3)/4}=strcat(r_num(j),r_num(j+1),r_num(j+2),r_num(j+3)); %then I tried to join the components again in groups of four
end
One-liner:
cadena ='0045003e003500440045003e003500440041003f00430040004f';
seccion = mat2cell(cadena, 1, 4*ones(1,numel(cadena)/4)).';
Access elements of cell array like this
seccion{1}
seccion{2}
..
..
seccion{end}
0 Comments
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!