how to have a loop if for a column in a table
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jessica Blasco
il 14 Mag 2018
Commentato: Peter Perkins
il 17 Mag 2018
I have a table with many columns... I want to iterate into one column, that have many numbers valores. is there someone that can help me?
the pseudocode is
if table.column > number
table.new_column= 'Ok'
else
table.this_new column='nok'
finally i wil have a new columns with ok and nok depending of the valor of the column
0 Commenti
Risposta accettata
Ameer Hamza
il 14 Mag 2018
Modificato: Ameer Hamza
il 14 Mag 2018
You don't need a for loop, use arrayfun(),
words = {'nok', 'ok'};
table.newColumn = arrayfun(@(x) words((x>number)+1), table.column);
3 Commenti
Ameer Hamza
il 14 Mag 2018
It is not clear what you are trying to do but you can access and change values of a table just like a cell array using table{1,1} (first column, first element). Similarly, use can assign as
table{1,1} = 1; % it will assign the value
Più risposte (1)
Peter Perkins
il 14 Mag 2018
Ameer's solution works, but arrayfun is really not needed:
words = {'nok', 'ok'};
table.newColumn = words(table.column>number)+1);
But also, a cell array of 'ok' and 'nok' is likely not all the helpful. I'd suggest making a categorical variable:
table.newColumn = categorical(table.column>number,[false,true],{'nok' 'ok});
Like Ameer, I'm not able to fully understand the followup question.
2 Commenti
Peter Perkins
il 17 Mag 2018
I can't follow this. I suggest you open a new thread, with a short, clear example of what you have and what you want.
Vedere anche
Categorie
Scopri di più su Line Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!