Replace numbers by strings

11 ビュー (過去 30 日間)
wave_buoys
wave_buoys 2018 年 1 月 14 日
コメント済み: Jos (10584) 2018 年 1 月 15 日
Hi,
I have a matrix A= 1x100, and now I want to replace if numbers in A < 90 by 'case1' and A>=90 by 'case 2'
Could anyone offer some help?
Thanks
  2 件のコメント
per isakson
per isakson 2018 年 1 月 14 日
Strings, e.g. 'case1', cannot be stored in a numerical matrix.
Stephen23
Stephen23 2018 年 1 月 14 日
htran's "Answer" moved here:
I mean probably I have to create a matrix B 1x100 which contains strings: 'case1' and 'case 2'. For example:
A B
10 case 1
100 case 2
40 case 1
.. so on
But I don't know how to a new matrix B according to numbers in matrix B.
More help please

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

採用された回答

per isakson
per isakson 2018 年 1 月 14 日
編集済み: per isakson 2018 年 1 月 14 日
One way:
A = randi([80,100], 1,100 ); % Sample data
C = cell(size(A));
C(A<90)={'case1'};
C(A>=90)={'case2'};
result
>> C(1:5)
ans =
'case1' 'case2' 'case2' 'case2' 'case1'
  1 件のコメント
Jos (10584)
Jos (10584) 2018 年 1 月 15 日
Great and simple answer by Per. A minor suggestion:
A = [80 90 100] % data
C = repmat({'case1'}, size(A))
C(A>=90) = {'case2'}

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

その他の回答 (1 件)

Jan
Jan 2018 年 1 月 14 日
Or:
Pool = {'case1', 'case2'};
B = Pool((A < 90) + 1)
Or:
B = sprintfc('case%d', (A < 90) + 1)

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by