How do I access array elements in for loop? Below is what I tried but had error. Any suggestion is appreciated.
Halis
K = [2 5];
for i = 1:2;
K(i) = K(1,i);
B(i) = 2*K(i);
C = 4*B(i);
disp(C);
D = C(1,1)
E = C(1,2)%error:Attempted to access C(1,2); index out of bounds because numel(C)=1.
F = 3*D^2 + 4*E^2
G = 3*D*E + 4*D*E
end

댓글 수: 2

Jan
Jan 2015년 9월 29일
The line K(i) = K(1,i) is meaningles. Simply omit it, because it replaces the i'th element of K by the i'th one. This would only have an effect if K is a matrix or a multidimensional array.
D,E,F,G are overwritten in each iteration. Is this your intention?
Deen Halis
Deen Halis 2015년 9월 29일
Thanks, I have made the changes as u suggested. D,E,F,G are not overwritten.I wish to access the values of each iterate to get D(=4) and E (=10) to enable me calculate F and G.
K = [2 5]; for i = 1:2; B(i) = 2*K(i); disp(B(i)); %Now i want to access the values of B(i) separately, ie 4 and 10, %making D = 4 and E = 10
%% Then I can determine F and G % F = 3*D^2 + 4*E^2 % G = 3*D*E + 4*D*E end

댓글을 달려면 로그인하십시오.

 채택된 답변

Thorsten
Thorsten 2015년 9월 29일

0 개 추천

K = [2 5];
for i = 1:2; B(i) = 2*K(i); end
D = B(1)
E = B(2)
F = 3*D^2 + 4*E^2
G = 3*D*E + 4*D*E
This could be simplified to
K = [2 5];
B = 2*K;
F = [3 4]*B.^2'; % == 3*B(1)^2 + 4*B(2)^2
G = 7*prod(B); % == 3*prod(B) + 4*prod(B);

댓글 수: 1

Deen Halis
Deen Halis 2015년 9월 29일
Thanks! This worked!. Thanks to everyone that has helped.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2015년 9월 28일

댓글:

2015년 9월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by