How can i cut the element in matrix?

1 次查看(过去 30 天)
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 个评论
Walter Roberson
Walter Roberson 2016-11-22
What is the data type of your input matrix? What is the expected data type of the output matrix?

请先登录,再进行评论。

回答(3 个)

Hildo
Hildo 2016-11-29
Change this number to string, so you will can cut.

bio lim
bio lim 2016-11-29
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 2016-11-29
In the special case where you are working with a string
S = '110000111';
result = regexp(S, '(.)(\1*)(?!\1)', 'match');

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by