How to insert text in a matrix - If function

56 Ansichten (letzte 30 Tage)
Pierre Lonfat
Pierre Lonfat am 19 Apr. 2017
Kommentiert: Pierre Lonfat am 20 Apr. 2017
Dear All, In the following code I would like to insert 'good news', 'bad news', 'no news' instead of 1, 2, 3 in the "Announcement" matrix.
No idea how to insert text in a matrix (20X28 in this case) !
Many thanks in advance !
Pierre
  1 Kommentar
Stephen23
Stephen23 am 19 Apr. 2017
Bearbeitet: Stephen23 am 19 Apr. 2017
Numeric matrices contain numeric data only.
You could:
  • store the index in the numeric array, or
  • use another kind of array, e.g. a cell array, table, etc.
But it is not possible to put a string (1xN character vector) into one element of a numeric matrix.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Geoff Hayes
Geoff Hayes am 19 Apr. 2017
Pierre - since you are inserting strings of different lengths, your Announcements array will need to be come a cell array
Announcements = cell(N,28);
You will updates it simply as
Announcements{j,i} = 'good news';
etc.
Though you may want to keep your previous implementation and just manage an array of values between 1-3 and then (when you need to display your message) just access a map that converts the number to a string
mapIdToString = {'good news'; 'bad news' ; 'no news'};
The equivalent to the 1 (id) would then be
mapIdToString(1)

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 19 Apr. 2017
D is Divident
F is Forecasted_DPS
A = {'good news','bad news','no news'};
ii = (D >= 1.03*F) + (D <= .97*F)*2;
ii(ii == 0) = 3;
Announcements = A(ii);

Kategorien

Mehr zu Characters and Strings 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