MATLAB Answers

I don't want to repeat these , I want to use a loop for it

1 view (last 30 days)
jack joke
jack joke on 17 Oct 2019
Commented: Stephen Cobeldick on 18 Oct 2019
I don't want to repeat these all time , I want to use a loop for it instead of copy and paste it all time ?
Can I just use a ( for ) for it ??????
KG1=zeros (28,28);
KG2=zeros (28,28);
KG3=zeros (28,28);
KG4=zeros (28,28);
KG5=zeros (28,28);
KG6=zeros (28,28);
KG7=zeros (28,28);
KG8=zeros (28,28);
KG9=zeros (28,28);
KG10=zeros (28,28);

  1 Comment

Stephen Cobeldick
Stephen Cobeldick on 18 Oct 2019
Numbering variables is a sign that you are doing something wrong.
Copy-and-pasting code is a sign that you are doing something wrong.
You can easily avoid both of these issues by using indexing. Indexing is simple, neat, easy to debug, and very efficient (unlike what you are trying to do).

Sign in to comment.

Answers (1)

Kevin Phung
Kevin Phung on 17 Oct 2019
Edited: Kevin Phung on 17 Oct 2019
perhaps instead of defining 10 variables or dynamically creating them in a for loop, you can store each matrix of zeros as a cell array.
KG = {zeros(28,28)};
KG = repmat(KG,10,1);
% now you can call out each cell array like so:
KG{1};
KG{2};
KG{3};
%etc...

  1 Comment

jack joke
jack joke on 17 Oct 2019
Thanks bro for your answering I just found the answer in another way.
it was
for i=1:10
eval(['KG' num2str(i) '= zeros (28,28)']);
end

Sign in to comment.

Sign in to answer this question.