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.

 채택된 답변

Peter Perkins
Peter Perkins 2017년 10월 22일
편집: Peter Perkins 2017년 10월 22일

0 개 추천

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

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 2017년 10월 25일
Can you attach your data in a .mat file?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by