MATLAB Answers

How can i cut the element in matrix?

8 views (last 30 days)
Won seo Ji
Won seo Ji on 22 Nov 2016
Answered: Walter Roberson on 29 Nov 2016
I want to cut the element in matrix. if i have a matrix like [ 110000111 ] (1x1) i want to make this [ 11 ; 0000 ; 111 ] (3x1) is this possible? If you can only cut it to a certain size, it's okay. like [110000111] to [110 ; 000 ; 111] that's okay too. thks :-)

  1 Comment

Walter Roberson
Walter Roberson on 22 Nov 2016
What is the data type of your input matrix? What is the expected data type of the output matrix?

Sign in to comment.

Answers (3)

Hildo
Hildo on 29 Nov 2016
Change this number to string, so you will can cut.

  0 Comments

Sign in to comment.


mor dave
mor dave on 29 Nov 2016
a=[110000111];
b=str2double(regexp(num2str(a),'\d','match'))
count = 1;
for i = 1:3
result(i) = str2num(strcat(num2str(b(count)),num2str(b(count+1)),num2str(b(count+2))));
count = count + 3;
end
result = result'
result =
110
0
111
Since result is double it is not displayed as 000, but 0.
If you keep it as a string without the str2num, then, something like:
result{i} = strcat(num2str(b(count)),num2str(b(count+1)),num2str(b(count+2)));
result =
'110'
'000'
'111'

  0 Comments

Sign in to comment.


Walter Roberson
Walter Roberson on 29 Nov 2016
In the special case where you are working with a string
S = '110000111';
result = regexp(S, '(.)(\1*)(?!\1)', 'match');

  0 Comments

Sign in to comment.

Sign in to answer this question.