IQ test, why does matlab see different answers?
1 回表示 (過去 30 日間)
古いコメントを表示
I have simple program which I will use later for more difficult, why do i get different answers for FIND and IF ------------------MATLAB code here-------------------------------------------
clear all, clc
b=0;
d=0;
b=[];
A=rand(5,5);
[r,c]=size(A);
inx=find(A>0.5);
disp(['There are ' num2str(length(inx)) ' no numbers more than 4'])
for i=1:r;
for j=i:c;
if A(i,j)>0.5;
d=d+1;
b=[b A(i,j)];
end;
end;
end;
if d>0;
disp(['There are ' num2str(d) ' numbers more than 4'])
else d==0;
disp(['There are no numbers more than 4'])
end;
---------------------End of MATLAB code-----------------------------------
1 件のコメント
Oleg Komarov
2012 年 8 月 6 日
You can format your code: http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup
採用された回答
Kye Taylor
2012 年 8 月 6 日
Your inner loop should run from
j = 1:c
not
j = i:c
2 件のコメント
Sean de Wolski
2012 年 8 月 6 日
Please accept the answer that helped you resolve this in order to mark the thread closed.
その他の回答 (1 件)
Star Strider
2012 年 8 月 6 日
MATLAB doesn't see different answers, your code does. In your ‘for’ loop you're only seeing the upper triangular part of ‘A’. The ‘find’ function sees the entire ‘A’ matrix.
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!