フィルターのクリア

Loading and naming specific columns

1 回表示 (過去 30 日間)
Anna
Anna 2011 年 8 月 30 日
Hello,
I used this code to import and name data in Matlab:
for i=1951:2000
fileName=['arunoff_' num2str(i)];
dataStruct.(fileName)=importdata([fileName '.txt']);
end
This creates data structure dataStruct.arunoff_(i).data for each year (1951-2000). Next I would like to create and name another set of variables using the third column in 'data' (i.e. dataStruct.arunoff_1951.data(:,3), dataStruct.arunoff_1952.data(:,3) etc.). However, I don't know how to write a loop that does that and was wondering if someone could help me with this? My main problem is I don't know how to tell the loop to use data in each a_runoff(i) structure.
Hope this makes sense, thanks very much for the help!

採用された回答

Walter Roberson
Walter Roberson 2011 年 8 月 30 日
fn = fieldnames(dataStruct);
for K = 1:length(fn)
newStruct.([fn 'd3']) = dataStruct.(fn).data(:,3);
end
  2 件のコメント
Andrei Bobrov
Andrei Bobrov 2011 年 8 月 30 日
Hi Walter!
Little typo.
for K = 1:length(fn)
newStruct.([fn{K} 'd3']) = dataStruct.(fn{K}).data(:,3);
end
Walter Roberson
Walter Roberson 2011 年 8 月 30 日
Good point. I mentally started with K = fn (i.e., iterate over the cells) and didn't clean up properly afterwards.

サインインしてコメントする。

その他の回答 (1 件)

Anna
Anna 2011 年 8 月 30 日
Thank you for your replies Walter and Andrei!
I used the code you supplied and it worked very well. I now have another problem though that I would really appreciate help with. I want to calculate the mean of all the values in each field in 'newStruct'. The values are arranged as one column in each field.
This is the code I tried using:
fn = fieldnames(newStruct); for K = 1:length(fn) Mean.(fn{K}) = mean(newStruct.(fn{K})); end
but I get this error: 'Subscript indices must either be real positive integers or logical'.
Anything you could suggest?
  1 件のコメント
Andrei Bobrov
Andrei Bobrov 2011 年 8 月 30 日
Hm, works for me

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by