How to use if statement inside a for loop?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Emily
el 5 de Mayo de 2022
Comentada: Walter Roberson
el 6 de Mayo de 2022
I'm currently trying to print out something if the difference between the plots is bigger than 100.
for i = 2:10
plot(x(:,25+i)
dif(:,i) = x(:,25+i) - x(:,25+(i-1)); %error here
if dif >200
fprintf( ) %print out the x value where it was triggered
else
fprintf('nothing')
end
I'm having trouble saving each occurance that it happens.
0 comentarios
Respuesta aceptada
Walter Roberson
el 5 de Mayo de 2022
for i = 2:10
plot(x(:,25+i)) ; hold on
dif(:,i) = x(: ,25+i) - x(:,25+(i-1));
mask = dif(:, i) > 200
if any(mask)
fprintf('col %d: %s\n', 25+i, mat2str(x(mask, 25+i))); %print out the x value where it was triggered
else
fprintf('col %d: nothing\n');
end
end
4 comentarios
Walter Roberson
el 6 de Mayo de 2022
The code I showed cannot print out the y axis values. The code I showed uses mat2str(x(mask, 25+i)) which displays x values, not y values.
The vectorized form of the code would look more like
i = 2:10;
plot(x(25+i))
dif = x(:,25+i) - x(:,25+i-1);
mask = dif > 200;
for c = 1:size(dif,2)
submask = mask(:,c);
if any(submask)
fprintf('col %d: %s\n', 25+c+1, mat2str(x(submask, 25+c+1))); %print out the x value where it was triggered
else
fprintf('col %d: nothing\n', 25+c+1);
end
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Entering Commands en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!