2017-09-26 7 views
0
function myScript() 

mat_files = dir('*.mat'); 
profiles = []; 
sub_ints = {}; 
sub_bands = {}; 
for i = 1: numel(mat_files) 
file_name = mat_files(i).name; 
fprintf('processing %s\n', file_name); 
data = load(file_name); 
profiles = [profiles; data.profile]; 
sub_ints = [sub_ints; data.subints]; 
sub_bands = [sub_bands; data.subbands]; 
end 

save('alldata.mat', 'profiles', 'sub_ints', 'sub_bands', '-v7.3'); 
end 

しかし、フォローイングエラーがあります 存在しないフィールド 'profile'への参照。matlabの構造体から配列にアクセスしようとしました

myScript(行13)のエラー profiles = cell2mat({profiles; data.profile}); プロファイルは、1 * 64ダブルsub_intsである18 * 64ダブルsub_bandsでsub_intssub_bandsを定義するときに作成したアレイのタイプを確認してください16 * 64ダブル

+2

'disp(data)'と入力すると、何を得ることができますか? – Zep

+0

未定義の関数または変数 'data'。 myScriptのエラー(12行目) disp(data)= load(file_name); –

+0

スクリプトを実行した後、または 'data = load(file_name);を実行した後に、コマンドウィンドウに' disp(data) '型を意味しました – Zep

答えて

0

です。これらはセル配列なので、それらを別々に使用する必要があります。 profilesと同じことをしたいかもしれません。

for i = 1: numel(mat_files) 
    file_name = mat_files(i).name; 
    fprintf('processing %s\n', file_name); 
    data = load(file_name); 
    profiles = [profiles; data.profile]; 
    sub_ints{i} = data.subints; 
    sub_bands{i} = data.subbands; 
end 

sub_ints = cell2mat(sub_ints); 
sub_bands = cell2mat(sub_bands); 
+0

それは同じエラーです –

+0

次に、 /データとdata.profileのタイプ、Zepのように示唆された。しかし、あなたは私の提案をとにかく実装する必要があります。 – 10a

関連する問題