how to convert 1100111 to 1 1 0 0 1 1 1

2 ビュー (過去 30 日間)
imola
imola 2015 年 6 月 26 日
編集済み: Stephen23 2015 年 6 月 26 日
Dear All,
I need to convert a matrix of
a=[11100;10000;10101];
to
s=[1 1 1 0 0;1 0 0 0 0;1 0 1 0 1];
to convert s to a we use
char(s+'0');
but how form a to s. Thanks in advance for any help.
regards,
Imola

採用された回答

Adam
Adam 2015 年 6 月 26 日
s = arrayfun( @(x) str2double( x ), num2str( a ) )
  1 件のコメント
Stephen23
Stephen23 2015 年 6 月 26 日
編集済み: Stephen23 2015 年 6 月 26 日
There is no need to use such complicated and slow code to solve this. For a much faster and simpler solution see my answer below.

サインインしてコメントする。

その他の回答 (2 件)

Stephen23
Stephen23 2015 年 6 月 26 日
編集済み: Stephen23 2015 年 6 月 26 日
If a is a numeric column vector, then you can simply use num2str like this:
>> a = [11100;10000;10101]
>> s = num2str(a)-'0'
s =
1 1 1 0 0
1 0 0 0 0
1 0 1 0 1
If a is actually a character array, then simply do this:
>> a = ['11100';'10000';'10101']
>> s = a-'0'
s =
1 1 1 0 0
1 0 0 0 0
1 0 1 0 1

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 6 月 26 日
a={'11100';'10000';'10101'}
out=cell2mat(cellfun(@(x) x-'0',a,'un',0))

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by