Effacer les filtres
Effacer les filtres

If else calculation problem in table

1 vue (au cours des 30 derniers jours)
Kasih Ditaningtyas Sari Pratiwi
Commenté : Image Analyst le 25 Oct 2017
Hi! I have a problem in using if else for tables in matlab. It does not result in error, but it does not show the real result, here is my code :
for x=1:size(finalCSVnew{:,2},2)
if finalCSVnew{:,2}(x) > 0;
finalCSVnew{:,13}(x)=finalCSVnew{:,7}(x);
else
finalCSVnew{:,13}(x)=0;
end
end
and I attach my source data here in the picture. If in column 2 the value is > 0, the value in Var13 should be the same as in column 7. However it remains 0. Please help me to find whats wrong with my code. Actually I am also not sure about how to define x, because I see the example in another case. Maybe I also got wrong from that. Thank you very much for your help.

Réponse acceptée

Peter Perkins
Peter Perkins le 22 Oct 2017
Modifié(e) : Peter Perkins le 22 Oct 2017
This is almost certainly better done without a loop, but it's hard to tell what you are doing. Something like
i = finalCSVnew.Var2 > 0;
finalCSVnew.Var13(i) = finalCSVnew.Var7(i);
finalCSVnew.Var13(~i) = 0;
In any case, your bug would seem to be that you are looping over columns of a column vector.
  2 commentaires
Kasih Ditaningtyas Sari Pratiwi
Thanks. But I got an error: You cannot subscript a table using linear indexing (one subscript) or multidimensional indexing (three or more subscripts). Use a row subscript and a variable subscript. I actually have not defined yet Var13 so I use :
i = finalCSVnew{:,2} > 0;
finalCSVnew{:,13}(i) = finalCSVnew{:,7}(i);
finalCSVnew{:,13}(~i) = 0;
and I got an error as the result.
Image Analyst
Image Analyst le 25 Oct 2017
Can you attach your data in a .mat file?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical 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