forループ内で下の​階層のフォルダを対象​に解析を繰り返したい​場合

実験の被験者毎にフォルダを作成して、同じファイル名(=fzdata.xlsx)で保存してあります。
forループを使用して被験者毎のフォルダにアクセスしながら(example1→example2→…という感じで)データ解析とグラフ作成をしたいのですが、
ループ内で下の階層のフォルダを指定する方法がわかりませんでした。
以下に自分が作成したコードを添付いたします。
下記のforループはデータを解析するためのものであり、ここからこのコード全体を被験者毎にループさせたいです。
ご教示いただければ幸いです。どうぞよろしくお願いいたします。
%% load date
data = readmatrix('fzdata.xlsx','Sheet',"Fz");
time = data(:,1);tBW = mean(data(1:100,2:end)); BW = mean(tBW); % calculate true BW
threshold = 20; % unit: Newton
g = 9.80665; % unit: m/s
trial = {'low1','low2','low3','low4','low5','high1','high2','high3','high4','high5'};
%% analyse each trial data
for k = 1:length(trial);
Fz = data(:,k+1);
bBW = mean(Fz(1:100));ERR = bBW - BW;mFz = Fz - ERR;% modify errors between experiments
...

 Accepted Answer

Takumi
Takumi on 4 Aug 2020
Edited: Takumi on 4 Aug 2020

0 votes

例えば、今いる階層にexample1とexample2というフォルダがあるとします。
そしてそれぞれのフォルダにはファイルfzdata.xlsxがあるとします。
今いる階層(フォルダがある)からフォルダexample1内にあるファイルfzdata.xlsxを読み込むには
data = readmatrix('example1\fzdata.xlsx','Sheet',"Fz");
というようにパスを指定します。

4 Comments

MA-X
MA-X on 4 Aug 2020
ご回答ありがとうございます。
フォルダの指定は手動だとできたのですが、被験者数が今後増えてくるので、そこをforループで自動化したいんです…
ご教示いただいたコードのexample1の部分を
subject = {'example1','example2','example3',...}
for r = 1:length(subject);
A = [char(subject(r))];
cd /A
end
という様な形でforループで解析を進めていくコードにしたかったのですが、この書き方だと「/A」というディレクトリを参照してしまうのでうまくいきませんでした…
Takumi
Takumi on 4 Aug 2020
Edited: Takumi on 4 Aug 2020
cdコマンドを使うなら
subject = {'example1','example2','example3',...}
for r = 1:length(subject);
A = subject{r};
% cd /A
cd(A)
end
です。ただ階層を移動するのは煩雑なので自分がやるならこのようにします。
(例えばexample1からexample10まで解析したい場合)
fileName = 'fzdata.xlsx';
for i=1:10
folderName = sprintf('example%d',i);
Pass = fullfile(folderName,fileName)
%%% データ読み込み %%%
end
これを単体で実行すると実行結果は
Pass= 'example1\fzdata.xlsx'
Pass = 'example2\fzdata.xlsx'
Pass = 'example3\fzdata.xlsx'
...
となりますから、このPassを
data = readmatrix(Pass,'Sheet',"Fz");
というように利用してデータを読み込むと良いのではないでしょうか。
MA-X
MA-X on 4 Aug 2020
そのようなデータの読み込み方があったのですね!!
ありがとうございます!!やってみます!!!
MA-X
MA-X on 4 Aug 2020
無事できました!ありがとうございました!!!

Sign in to comment.

More Answers (0)

Categories

Find more on ソフトウェア開発ツール in Help Center and File Exchange

Products

Release

R2020a

Tags

Asked:

on 4 Aug 2020

Commented:

on 4 Aug 2020

Community Treasure Hunt

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

Start Hunting!