Tableからデータを抽出する方法
13 ビュー (過去 30 日間)
古いコメントを表示
Excelから読み込むデータです。
x値とそれに対応するy値があります。x値は増加しており、xがだいたい25増えるごとにx値はしばらく一定になり、その後x値の増加が再開します。
x値が増加再開した直後からxが10増加するまでのx値とy値のグラフを自動で作成したいです。(もしくはそのデータを抜き出したいです)
説明がややこしいですがお願いします。
0 件のコメント
回答 (1 件)
Akira Agata
2021 年 10 月 4 日
下記のような方法はいかがでしょうか?
% データ読み込み
T = readtable('Book2.xlsx');
% xのdiffを取る (xが一定の区間は0となる)
d = [0; diff(T.x)];
% xが増加している部分 (diff > 0.1と仮定) を抽出
T.isData = d > 0.1;
% 増加開始直後の点を特定
T.isRisingEdge = [false; diff(T.isData) == 1];
% 増加開始から次の増加開始までをグループとして番号を割り当て
T.group = cumsum(T.isRisingEdge);
% 各グループについて、xが10増加するまでの x-y をプロット
figure
tiledlayout('flow')
for kk = 1:max(T.group)
idx1 = T.group == kk;
ptStart = find(idx1,1);
idx2 = T.x <= T.x(ptStart)+10;
idx = idx1 & idx2;
nexttile
plot(T.x(idx),T.y(idx))
end
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で スプレッドシート についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!