conditions in matlab (for/if/else)
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Image Analyst
il 7 Ott 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 Commenti
Image Analyst
il 7 Ott 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)
Vedere anche
Categorie
Scopri di più su Descriptive Statistics and Visualization in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!