Same loop have different vector output

2 views (last 30 days)
Sir, when i am running this loop for f_s the first f_s1 is comming as a column vector while f_s2, 3, 4, 5, are comming as a row vector.
Please sir, suggest me where i amking the mistakes.
utdelt=([1;2;3;4;5;6;7;8;9;10;11;12;13;14;15]);
Ktts=rand(6,6);
for i=1:1:10
for n=1:1:5
if n==1
Utdelt=([zeros(3,1); (utdelt(1:3,i))]);
eval(['Utdelt',num2str(n),'=[zeros(3,1); (utdelt(1:3,i))]']);
else
Utdelt=utdelt([((1+(n-2)*3):(6+(n-2)*3)),i]);
eval(['Utdelt',num2str(n),'=[utdelt((1+(n-2)*3):(6+(n-2)*3,i)]']);
end
eval(['Ktts',num2str(n),'l']);
eval(['f_s',num2str(n),'=Ktts*Utdelt']);
end
end
  4 Comments
Stephen23
Stephen23 on 13 Apr 2022
Edited: Stephen23 on 13 Apr 2022
"Please sir, suggest me where i amking the mistakes."
The obvious mistake is that you are forcing meta-data into variable names.
That forces you into writing slow, complex, inefficient, obfuscated, buggy code that is hard to debug (which is exactly what your question demonstrates, and hopefully you are about to start to notice).

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 13 Apr 2022
  7 Comments
Chaudhary P Patel
Chaudhary P Patel on 15 Apr 2022
@Walter Roberson sir, just tell me is it correct? if wrong please correct me.
utdelt=([1;2;3;4;5;6;7;8;9;10;11;12;13;14;15]);
nodof=3;
for i=1
for n=1:1:5
if n==1
Utdelt=([zeros(nodof,1); (utdelt(1:nodof,i))]);
eval(['Utdelt',num2str(n),'=[zeros(nodof,1); (utdelt(1:nodof,i))]']);
else
Utdelt=utdelt([(1+(n-2)*nodof):(6+(n-2)*nodof),(i)]);
eval(['Utdelt',num2str(n),'=[utdelt([(1+(n-2)*nodof):(6+(n-2)*nodof,(i)])]']);
end
end

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!