Replace numbers by strings

39 vues (au cours des 30 derniers jours)
wave_buoys
wave_buoys le 14 Jan 2018
Commenté : Jos (10584) le 15 Jan 2018
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 commentaires
per isakson
per isakson le 14 Jan 2018
Strings, e.g. 'case1', cannot be stored in a numerical matrix.
Stephen23
Stephen23 le 14 Jan 2018
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

Connectez-vous pour commenter.

Réponse acceptée

per isakson
per isakson le 14 Jan 2018
Modifié(e) : per isakson le 14 Jan 2018
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 commentaire
Jos (10584)
Jos (10584) le 15 Jan 2018
Great and simple answer by Per. A minor suggestion:
A = [80 90 100] % data
C = repmat({'case1'}, size(A))
C(A>=90) = {'case2'}

Connectez-vous pour commenter.

Plus de réponses (1)

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

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by