Filter löschen
Filter löschen

IQ test, why does matlab see different answers?

1 Ansicht (letzte 30 Tage)
Algirdas Kluonius
Algirdas Kluonius am 6 Aug. 2012
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-----------------------------------

Akzeptierte Antwort

Kye Taylor
Kye Taylor am 6 Aug. 2012
Your inner loop should run from
j = 1:c
not
j = i:c
  2 Kommentare
Algirdas Kluonius
Algirdas Kluonius am 6 Aug. 2012
thanks very much, i didn't see that it was i , it solved everything :)
Sean de Wolski
Sean de Wolski am 6 Aug. 2012
Please accept the answer that helped you resolve this in order to mark the thread closed.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Star Strider
Star Strider am 6 Aug. 2012
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.
  1 Kommentar
Algirdas Kluonius
Algirdas Kluonius am 6 Aug. 2012
u are also right , because of i instead of 1 it was a fcn for a upper triangle :) thx again

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements 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