【App designer】測​​定データの該当区間​の​みグラフ化するア​プリ

4 ビュー (過去 30 日間)
RK
RK 2022 年 1 月 31 日
回答済み: Naoya 2022 年 2 月 3 日
下記のアプリを検討しています。
①ファイル(添付画像)を読み込み
②該当箇所を判定(画像でいう赤枠箇所)
③最初の区間の範囲(画像でいう2~5行目)でのみグラフを作成
df = diff(app.data(:, 1));
idx = find(df >= 1, inf, 'first');
rows = zeros(1, numel(idx));
pos = 1;
for n = 1:numel(idx)
checkFlag = find(app.data(idx(n):end, 2) >= 1, 1, 'first');
if ~isempty(checkFlag) && (idx(n) > pos)
rows(1, n) = checkFlag;
pos = idx(n) + checkFlag - 1;
end
end
なお、グラフの作成は赤枠内のデータをY軸とし、X軸はこのY軸をもとに作成したいと考えています。
下記のようなイメージです。
また、以前同様の質問をしまして、下記のような回答をいただいています。
Y1 = [0 1 1 1 ]; %最初の該当区間となるデータを読み込み
Y2 = [0 0 0 1 ];
X = [0 0 0 1 ]; %該当区間のはじめを基準に幅2となるX軸データを作成
plot(app.UIAxes,x,y1,y2);
上記③の方法について、ご教授いただけますと幸いです。
よろしくお願いいたします。

採用された回答

Naoya
Naoya 2022 年 2 月 3 日
信号の立ち上がり/立下りの探索は、Signal Processing Toolbox があればそれぞれrisetime/ falltime で求めることができます。
これらの機能を使用して、信号列に対して最初の立ち上がり->立下り区間のみを描画するフローとしては以下例が考えられます。
% 添付画像に対応するデータの作成
data = [0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1]';
% 立ち上がり時間,立下り時間を探索
[~,rt] = risetime(data(:,1));
[~,~,ft] = falltime(data(:,1));
% 立ち上がり時間,立下り時間に対してround処理
rt = round(rt);
ft = round(ft);
% 最初の立ち上がり<->立下り区間に対してプロット描画
plot(rt(1):ft(1), data(rt(1):ft(1),1), rt(1):ft(1), data(rt(1):ft(1),2) )

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeグラフィックス出力のターゲットの指定 についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!