我需要在Matlab中使用一些工具箱,并且很長時間沒有使用Matlab。想知道在識別路徑中的檔案時如何使用字串變數作為占位符。比如在bash中,${SUBJID}/file1/abcd.nii,matlab中的fullpath()會不會也是這樣,如何將輸出保存到對應的path?
a: A001/A001/file1/abcd.nii
b: A001/A001/file2/diff/mask.nii
output: A001/A001/file/output.txt
bash:
export SUBJECTS_DIR=dir\
cd $SUBJECTS_DIR
SUBJID_LIST=[A001, A002, A003, B001, B002, ......]
for SUBJID in "${SUBJID_LIST[@]}"; do function
-a ${SUBJID}/${SUBJID}/file1/abcd.nii
-b ${SUBJID}/${SUBJID}/file2/diff/mask.nii
-output ${SUBJID}/${SUBJID}/file/output; done
matlab:
SUBJID_LIST=[A001, A002, A003, B001, B002, ......]
for i in SUBJID_list
path=dir\
a=fullpath(path,i,abcd.nii) ??
b=fullpath(path,i,mask.nii) ??
output=function(a,b)
writetable(output, "??? output.txt")
end
uj5u.com熱心網友回復:
您可以fullfile
用來連接檔案路徑并strrep
用變數替換占位符
請注意,您的路徑和名稱應在 MATLAB 中用引號引起來。
也是path
一個內置函式名,所以我建議避免將它作為變數名。
SUBJID_LIST={'A001', 'A002', 'A003', 'B001', 'B002'};
myPath = 'dir\${SUBJID}\${SUBJID}\';
for i = 1:numel(SUBJID_LIST)
iPath = strrep( myPath, '${SUBJID}', SUBJID_LIST{i} );
a = fullfile(iPath, 'abcd.nii');
b = fullfile(iPath, 'mask.nii');
output = function(a,b);
writetable(output, fullfile(iPath, 'output.txt');
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/468939.html