conditions in matlab (for/if/else)
조회 수: 2 (최근 30일)
이전 댓글 표시
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
답변 (1개)
Image Analyst
2018년 10월 7일
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
Image Analyst
2018년 10월 7일
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)
참고 항목
카테고리
Help Center 및 File Exchange에서 Descriptive Statistics and Visualization에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!