我在Matlab中有一個雙for回圈。第一個回圈確定了作業目錄。第二個回圈確定作業目錄中我想加載和處理的檔案的名稱:
我有一個雙for回圈。
for j=1:J
cd / users/M_%j/ %************
A_temp=cell(I,1)。
for ii=1: I
if isfile(['A. ' num2str(ii) '.mat'])
load(['A.' num2str(ii) '.mat'])。)
A_temp{ii}= A。
end
end。
A_final_x%j= vertcat(A_temp{:}); %************
cd /users/
save('A_final_x%j.mat'/span>, 'A_final_x%j'/span>) %************
end。
我不知道如何正確替換%j,你在我的代碼的三行中看到了%************。你能告訴我如何進行嗎?
uj5u.com熱心網友回復:
我把我的評論變成了一個答案......請看下面的代碼評論,它解決了為什么我在每一步改變你的代碼的問題
。for j = 1: J
%創建檔案路徑 %創建檔案路徑
fp = ['/users/M_', num2str(j)]; % Alternative: fp = sprintf( '/users/M_%d', j ) ;
A_temp=cell(I,1)。
for ii = 1: I
% 創建一個對mat檔案的完整路徑參考'A.' num2str(ii) '.mat']]. );
if exist( filepath, 'file' ) % exist比 "isfile "更靈活
% 直接賦值給一個變數,如果 "A "不在mat檔案中會出錯。
% 這比不知道你是否有一個壞檔案更穩健 %。
A = getfield( load( filepath ), 'A' ) 。
A_temp{ii}= A。
end
end
A_final_x = vertcat(A_temp{:}); % 不需要動態變數名。
% 定義輸出路徑
outpath = fullfile( fp, ['A_final_x' num2str(j) ' .mat'] );
save( outpath, 'A_final_x' ); % save using the full path and a fixed var name。
結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/309696.html
標籤:
