how to save variables to an array using a for loop?

조회 수: 9 (최근 30일)
Debby Amaya
Debby Amaya 2017년 6월 29일
편집: Jan 2017년 6월 30일
If I have m1 = 12, m2 = 34, m3 = 12, m4 = 45 how can I save it in the form of y = [m1, m2, m3, m4] using a for loop? kind of like.. for i = 2:6 y = ?.... Thanks
  댓글 수: 3
Debby Amaya
Debby Amaya 2017년 6월 30일
I calculated the mean pixel's value for several different images using MATlab, that's how I ended up with different variables. I want to put them together now to graph those values vs. time.
Stephen23
Stephen23 2017년 6월 30일
편집: Stephen23 2017년 6월 30일
"I calculated the mean pixel's value for several different images using MATlab, that's how I ended up with different variables"
So the best and simplest solution is to put that data into one variable when you make those calculations. That is what any experienced user would do, and you can do that too.
Presumably you perform those calculations in a loop: in that case you can simply preallocate the output matrix and use indexing inside the loop to allocate the calculated values. Simple, fast, efficient, neat, easy to understand... there is no reason why you cannot write good code now.

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

답변 (2개)

Walter Roberson
Walter Roberson 2017년 6월 29일

Jan
Jan 2017년 6월 30일
편집: Jan 2017년 6월 30일
As suggested above: The best idea is not to create the variables in this way at all. Hiding an index in the name of the variable is a bad idea.
But if you have these names already and cannot change the code, which creates them - what's wrong with:
y = [m1, m2, m3, m4]
? Is the number of variables unknown? Do the variables come from an imported MAT file? Then this would help:
Data = load('File.mat');
C = struct2cell(Data);
M = cat(2, C{:});
Nevertheless, the main goal is to avoid the creation of such variables from the beginning.

카테고리

Help CenterFile 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