How can i cut the element in matrix?

1 Ansicht (letzte 30 Tage)
Won seo Ji
Won seo Ji am 22 Nov. 2016
Beantwortet: Walter Roberson am 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 Kommentar
Walter Roberson
Walter Roberson am 22 Nov. 2016
What is the data type of your input matrix? What is the expected data type of the output matrix?

Melden Sie sich an, um zu kommentieren.

Antworten (3)

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

bio lim
bio lim am 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'

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

Kategorien

Mehr zu Cell Arrays 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!

Translated by