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

조회 수: 6 (최근 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 CenterFile Exchange에서 App Designer を使用したアプリ開発에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!