Matrix construction over a loop

x=[1:1:10];
a=2;
b=4;
c=6;
for i=1:length(x)
A=a*b/x(i);
B=c+A(i)/b;
D=a+b;
E=1-2*c;
MAT=[B(i);D;E];
M=sqrt([MAT])
end
I am not able to matrix corresponding to 10 values of x.
plz help
thanks

1 个评论

This line will create a scaler value for A
A=a*b/x(i);
On the following line you are trying to index a scaler value
B=c+A(i)/b;

请先登录,再进行评论。

 采纳的回答

clear
x=[1:1:10];
a=2;
b=4;
c=6;
for i=1:length(x)
A(i)=a*b/x(i);
B(i)=c+A(i)/b;
D=a+b;
E=1-2*c;
MAT(i,:)=[B(i);D;E];
end
M=sqrt(abs(MAT))

2 个评论

In my solution, the Matrix MAT is not 3 x 1. It is 10 x 3 for which sqrt is possible and same as what you would get if you perform MAT.^(1/2) element wise operation.
VBBV, thanks
Its works .

请先登录,再进行评论。

更多回答(1 个)

Maybe you want:
for i = 1:length(x)
A(i) = a * b / x(i);
B(i) = c + A(i) / b;
D(i) = a + b;
E(i) = 1 - 2 * c;
...

类别

帮助中心File 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