필터 지우기
필터 지우기

Equation in a single column matrix?

조회 수: 4 (최근 30일)
Shinichiro Shimata
Shinichiro Shimata 2021년 3월 5일
댓글: Shinichiro Shimata 2021년 3월 7일
I wanted to compute an equation in (n,1) matrix instead of (1,n) in a for loop.
Given
a =[27.7847; 31.1386,33.3644; 37.0654; 38.5043; 41.3808];
b = [13; 33; 55; 155; 245; 519];
When I use the following for loop, it gives me 6x6 matrix instead of 6x1.
for n = 1:6
c(n)= a(n)*0.4/(log(b(n/13));
end
Please modify the equation so that I can get answers in 6x1.
Thanks in advance.

채택된 답변

Jorg Woehl
Jorg Woehl 2021년 3월 5일
When I run your code (after fixing a typo when you refer to what I think should be b(n)/13), the result is a 1-by-6 array for c:
a =[27.7847; 31.1386; 33.3644; 37.0654; 38.5043; 41.3808];
b = [13; 33; 55; 155; 245; 519];
for n = 1:6
c(n)= a(n)*0.4/(log(b(n)/13));
end
c =
Inf 13.3705 9.2526 5.9820 5.2453 4.4894
To get c as a 6-by-1 vector instead, use c(n,1) inside the loop, or calculate the transpose c=c' after the loop is done.
Or even better, avoid the for loop altogether with the following vectorized assignment:
c = a.*0.4./(log(b./13))
This evaluates the expression one element at a time for a and b and constructs the vector c from the individual results.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by