csvデータを行列入​れ替えし、なおかつ垂​直方向に連結を複数デ​ータに対してまとめて​行う方法について

初心者です。見当違いなことを言っていたら申し訳ありません。
現在2行×n列のcsvデータを多数持っております。
それらcsvデータをn行×2列に変換し、なおかつ垂直方向に連結したいと考えています。
1つずつ行うのであれば、
a = importdata("●●.csv");
b = transpose(a);
c = importdata("××.csv");
d = transpose(c);
e = vertcat(b,d);
上記で出来るのですが、複数データをまとめて処理したいと考えております。
以下中途半端ではありますが、作成したコードになります。
この後どうすれば良いか分からず、また以下も正しいのか今一つ分かりません。
ご教授頂けないでしょうか。
files = dir('*.csv');
for ii = 1:length(files)
tmp = transpose(files(ii).name);
end

 채택된 답변

Hernia Baby
Hernia Baby 2022년 8월 24일
편집: Hernia Baby 2022년 8월 24일

1 개 추천

以下のようにすればいいかと思います。
もちろんvertcatでも同様です。
files = dir('*.csv');
A = [];
for ii = 1:length(files)
tmp = transpose(readmatrix(files(ii).name));
A = [A;tmp];
end
※読み込む関数がなかったので追記しました(readmatrix)。

댓글 수: 7

cho hunseki
cho hunseki 2022년 8월 24일
Hernia Babyさん
連続で回答頂きありがとうございました。
提示頂いたコードで出来ました。
for文の中にさらにfor文を組み込むのか?
と考えておりました。
先にデータをつないで、最後にまとめて行列入れ替えるのですね。
ありがとうございました。
Hernia Baby
Hernia Baby 2022년 8월 24일
解決できたようでよかったです。
■補足
 内容としては
  ①読み込む ➡ 転置する
  ②Aに縦に連結
 を繰り返しています。
■参考
 [A, B]は水平に連結 = horzcat
 [A; B]は垂直に連結 = vertcat
cho hunseki
cho hunseki 2022년 8월 29일
Hernia Babyさん
平素よりお世話になっております。
改めて質問があり、ご連絡しました。
ご提案頂いたコードで複数データの連結は可能でした。ありがとうございました。
その後なのですが、連結した生体信号をスペクトログラムで描出したいと考えています。
以下コードで複数csvデータの連結、およびスペクトログラムを試みました。
files = dir('*.csv');
A = [];
for ii = 1:length(files)
tmp = transpose(readmatrix(files(ii).name));
A = [A;tmp];
end
s = spectrogram(A);
spectrogram(A,'yaxis')
すると以下のエラーメッセージがでました。
使い方によるエラー pspectrogram>chkinput
X はベクトル (行または列) でなければなりません。
エラー: pspectrogram (行 33)
chkinput(xw,'X');
エラー: spectrogram (行 191)
[varargout{1:nargout}] = pspectrogram({x},'spect',inpArgs{:});
エラー: untitled (行 8)
s = spectrogram(A);
手作業で複数個csvデータを連結させてスペクトログラムにすることはできたのですが、
提示頂いたfor文を用いるとできませんでした。
解決策などはありますでしょうか。
お忙しい中大変恐縮ではありますが、ご検討頂ければ幸いです。
Hernia Baby
Hernia Baby 2022년 8월 29일
読み込んだデータAはどうなってますでしょうか。スカラー値もしくは行列になっていませんか?後者が濃厚な気がします。
cho hunseki
cho hunseki 2022년 8월 29일
n行2列の行列になっています。
Hernia Baby
Hernia Baby 2022년 8월 29일
その場合、どちらの列か選ぶ必要があります。例えば2列目をスペクトル解析する場合はA(:,2)のようにして関数に入れてください。
cho hunseki
cho hunseki 2022년 8월 29일
ありがとうございました。
スペクトログラム作成できました。
行列は対応していないのですね。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

태그

질문:

2022년 8월 24일

댓글:

2022년 8월 29일

Community Treasure Hunt

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

Start Hunting!