Hi,
I am trying to use a while loop to call files from a cell array. The cell array has one columns. Column 1 holds X,Y terrain data (512 x 2).
To manually get the data I have to use TD1 = TD{1,1}; however I am going to be dealing with possibly hundreds of rows of this data so need to be able to use a while loop.
The variable Num in this case is the total number of files which have been imported and the while function knows that it can stop once it as reached a value greater than it.
I want to store each variable from the while loop hence the ii value. So that I end up with TD1, TD2, TD3 ....
ii=1;
while ii <= Num
TD(ii) = TD{1,1};
|TD1 = TD{1,1};|
|TD2 = TD{1,2};|Current Manual Method
|TD3 = TD{1,3};|
end

댓글 수: 4

While it's certainly possible and not particularly hard to do what you want, it's usually not recommended to dynamically create variables. Is there any reason you can't keep on using the cell array? That is, instead of writing
fun(TD1) %or fun(TD2), or ...
write
fun(TD{1}) %or fun(TD{2}), or ...
I imagine I could for all intensive purposes, however Im a bit of a matlab newbie so don't understand the manipulation of the array.
The problem is that I need to add in a third column to each TD{x} to specify the depth z of all the coordinates within that file.
Is it simply the case of using TD{1,1} to specify the data to use. So for example if I then wanted to get the maximum and minimum values from that set I could use standard notation ,,,,, min(TD{1,1})?
Stephen23
Stephen23 2015년 2월 9일
편집: Stephen23 2015년 2월 11일
Yes, exactly right, your example is perfectly correct. In every place where you want to use some variable, you can also refer to the indexed element of any cell array, structure, or any other kind of array. Instead of creating and referring to:
A1 = [A1 data]
A2 = [A2 data]
...
You should store your data together (here in a cell array):
A = {[A1 data],[A2 data]...};
Then refer to the elements of A:
A{1} % equivalent to your variable A1
A{2} % equivalent to your variable A2
...
For example:
min(A{1}) % min of the first element of the cell array, i.e. A1 data.
Go and try it! You will also find lots of helpful tools and functions that operate on your cell array , which will make your life a million times easier than if you named each variable individually.
Many Thanks, This has sorted all my problems out.

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

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2015년 2월 9일

편집:

2015년 2월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by