conditions in matlab (for/if/else)
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi, I am trying to create a a function in which I can put in all the numbers from the 100 to 150 and extract all the odd numbers and do the sum square of these numbers I tried using the for function but I don't know how to take it after that
0 comentarios
Respuestas (1)
Image Analyst
el 7 de Oct. de 2018
Try this:
% Generate starting signal.
v = 100:150
% Extract indexes of the odd numbers.
oddIndexes = logical(mod(v, 2))
% Extract the odd numbers themselves.
oddNumbers = v(oddIndexes)
% Compute the sum of the squares of odd numbers.
sumOfSuqares = sum(oddNumbers .^ 2)
Hopefully it's not your homework, or else you can't use my code.
2 comentarios
Image Analyst
el 7 de Oct. de 2018
That's not the way MATLAB programmers would do it, unless they're a complete beginner coming from an old-school antique language. but nonetheless, here are both ways:
% Generate starting signal.
v = 100:150
% Klunky for loop way:
theSum = 0;
oddNumbers = []; % Initialize to null.
for k = 1 : length(v)
if rem(v(k), 2) == 1
% It's odd
oddNumbers = [oddNumbers, v(k)];
theSum = theSum + v(k)^2;
end
end
oddNumbers
theSum
% Much better vectorized way:
% Extract indexes of the odd numbers.
oddIndexes = logical(mod(v, 2))
% Extract the odd numbers themselves.
oddNumbers = v(oddIndexes)
% Compute the sum of the squares of odd numbers.
sumOfSuqares = sum(oddNumbers .^ 2)
Ver también
Categorías
Más información sobre Descriptive Statistics and Visualization 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!