複数の.mファイルからの変数のインポート
17 ビュー (過去 30 日間)
古いコメントを表示
以下のpathの中に、.mファイルが複数あります。
%raw data
path = '/Users/ID/Desktop/data/size_data/reviseddata/';
Files = '*.mat';
%% データ抽出
Filenames = fullfile(path,Files);
F_name=dir(Filenames);
1つの.mに、lat、lonがdoubleで、data1、data2がcellで入っています。
例えば、以下のように、lat,lonが 4×1 double、data1とdata2が4×1 cellです。data1は1つのセルに数字が3つ入っています。data2は1つのセルに数字が1つです。ただし、全ての.mが4×1とは限らず、例えば20行あるものもあります。
lon =[132;131;130;129]
lat =[20;30;40;50]
data1 =
4×1 の cell 配列
{[1 4 5]}
{[0 1 4]}
{[1 3 5]}
{[-1 3 5]}
data2 =
4×1 の cell 配列
{[5]}
{[3]}
{[4]}
{[0]}
<実施したいこと>
.mを全てmergeさせて、1つの変数((合計の行)×6の配列、double)としたい(最終的にはmap上に点を打ちたいと考えています)。
<わからないこと>
全ての.mファイルを1つにまとめることはできますか?
.mのファイル名は一つずつ異なりますが、中に入っている変数名(lat、lon、data1、data2)が同じです。
ご示唆くださりますと幸いです。
どうぞよろしくお願いいたします。
2 件のコメント
Hernia Baby
2022 年 5 月 18 日
1つ教えてください。
1つの変数((合計の行)×6の配列、double)とは [lon, lat, data1, data2]のような考えになりますか?
その場合はサイズの異なる空白部はNaNで埋めたりしますか?
採用された回答
Hernia Baby
2022 年 5 月 18 日
各データ内の行数は同じだと仮定して話を進めています
まずは格納するための空集合Xを持ちます
X = [];
データを一つとってきたとしましょう
lon =[132;131;130;129];
lat =[20;30;40;50];
data1 ={[1 4 5];
[0 1 4];
[1 3 5];
[-1 3 5]};
data2 ={
[5]
[3]
[4]
[0]};
data1 = cell2mat(data1)
data2 = cell2mat(data2)
一時フォルダで1セットにしましょう
tmp = [lon,lat,data1,data2]
後は tmp を更新しながら連結していくだけです
X = [X;tmp]
X = [X;tmp]
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!