AppDesigne​rで作成したアプリの​起動時に読み込んだデ​ータが使えない

11 views (last 30 days)
和神 水ノ江
和神 水ノ江 on 8 Sep 2021
Commented: Kojiro Saito on 8 Sep 2021
現在、AppDesignerで作成したアプリ上で事前に学習が完了している機械学習の分類を行おうとしています。
その際、アプリ起動時にこの学習済みのモデルを読み込む処理を行い、ボタンを押すと分類が始まるシステムの開発をしていますが上手くできません。
function startupFcn(app)
load("sample.mat",'decoderNet','encoderNet');
end
function ButtonPushed(app, event)
prediction(app,encoderNet,decoderNet);
end
sample.matにはdecorderNet,encoderNetが保存してあり、predictionは分類を行う関数です。
このpredictionの部分で「関数または変数 'encoderNet' が認識されません。」とエラーが返されます。
これは最初のsample.matが読み込めていないということでしょうか?

Accepted Answer

Kojiro Saito
Kojiro Saito on 8 Sep 2021
decorderNetencoderNetがApp Designerのfunctionの中でのローカル変数になってしまって他の関数から認識されていない状態のようです。
「コードビュー」の左側の「コードブラウザー」からプロパティを追加し、
properties (Access = private)
end
の中に
decoderNet
encoderNet
の2行を追加してみてください。
こんなイメージです。
そして2つの関数を以下のように変更します。
function startupFcn(app)
load("sample.mat",'decoderNet','encoderNet');
app.decoderNet = decoderNet;
app.encoderNet = encoderNet;
end
function ButtonPushed(app, event)
prediction(app, app.encoderNet, app.decoderNet);
end
これでいけるはずです。
  2 Comments
和神 水ノ江
和神 水ノ江 on 8 Sep 2021
ご回答していただきありがとうございます。
こちらの実装で無事に動かすことができました。
Kojiro Saito
Kojiro Saito on 8 Sep 2021
解決できて良かったです。
App Designerはappというルート変数がコールバック関数から共通でアクセスできます。
ドキュメントだとこの辺りに説明がありました。

Sign in to comment.

More Answers (0)

Categories

Find more on App Designer を使用したアプリ開発 in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!