how to solve the expression using the loops

1 view (last 30 days)
phoenix
phoenix on 14 Dec 2017
Edited: Jan on 18 Dec 2017
p=0;
q=0;
pr=0;
qr=0;
a=0;
b=0;
ar=0;
br=0;
for x=1:1:5
p=p+P(x,1);
q=q+Q(x,1);
pr=pr+P(x,1)*5^(x-1);
qr=qr+Q(x,1)*5^(x-1);
end
for x=1:1:15
a=a+A(x,1);
b=b+B(x,1);
ar=ar+A(x,1)*5^(x-1);
br=br+B(x,1)*5^(x-1);
end
Now,how to find this: p*qr*b+p*br*q; combining the two loops.
  2 Comments
Jan
Jan on 14 Dec 2017
What are P and Q, A and B? What's wrong with p*qr*b+p*br*q ?
phoenix
phoenix on 14 Dec 2017
Edited: phoenix on 14 Dec 2017
matrices.if i write in this form p*qr*b+p*br*q ,is it right? how can i combine these two different loops into a single one?

Sign in to comment.

Answers (1)

Jan
Jan on 14 Dec 2017
Edited: Jan on 16 Dec 2017
What about:
for x=1:5
p = p + P(x,1);
q = q + Q(x,1);
pr = pr + P(x,1)*5^(x-1);
qr = qr + Q(x,1)*5^(x-1);
a = a + A(x,1);
b = b + B(x,1);
ar = ar + A(x,1)*5^(x-1);
br = br + B(x,1)*5^(x-1);
end
"Combining" seems to be easy, because the two loops are independent from each other. You could even omit the loops:
c = 5 .^ (0:4).'; % [EDITED] transposed
p = sum(P(1:5, 1));
q = sum(Q(1:5, 1)); % [EDITED] trailing parenthesis added
pr = sum(P(1:5,1) .* c);
qr = sum(Q(1:5,1) .* c);
And the same for the 2nd loop.
If p*qr*b+p*br*q is correct or not depends on what you want as output. Simply try it. Maybe you want the elementwise products:
p .* qr .* b + p .* br .* q
  6 Comments
phoenix
phoenix on 18 Dec 2017
@Jan Simon: What does this symbol .' stand for used in c = 5 .^ (0:4).';?
Jan
Jan on 18 Dec 2017
Edited: Jan on 18 Dec 2017
@phoenix: .' is the transpose operator. It is frequently confused with ' , but this is the complex conjugate transposing. See https://www.mathworks.com/help/matlab/ref/transpose.html and https://www.mathworks.com/help/matlab/matlab_prog/matlab-operators-and-special-characters.html

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!