2016-08-04 12 views
1

私はMatlabでスタンドアロンアプリケーションを作成しました。唯一の問題は、アプリケーションを起動するときに、ユーザーに何らかのファイルを要求するようになるまでに時間がかかることです(プログラムが最初にやったと思うことです)。ユーザは、プログラムが動作しているかどうかを理解していない。なぜなら、動作中のシンボルが画面に現れないというメッセージがないからである。 私の考えは、ユーザーにファイルを要求するウィンドウが表示されるまで、ウェイトバーを表示することです。スタンドアロンスクリプトを開始する前にwaitbar matlab

どうすればいいですか?ループ外でウェイトバーを使用することは可能ですか?

スクリプトは次のように起動します:

close all 
clear all 

[filename,pathname] = uigetfile({'*.xlsx'},'Opening File','C:\'); 

、それはファイルを選択するためのウィンドウを開く前に時間がかかる理由を私は知りません。

+0

開始と 'uigetfile()'の間にコードを書いていないので、私はウェイターがうまくいくとは思わないでしょう。ウェイトバーの進捗状況はユーザーによって更新され、実行するステップは数多くありません。たとえば、端末のプリントアウト「Clearing ...」や、メッセージボックスを使用するなど、ユーザに通知するだけです。これとは別に、すべてをクリアする必要がある場合は、何かが間違っています。関連するコードを関数にラップし、構造体(またはスタンドアロン変数)を使用して関数に関連する情報を入力するようにしてください。これにより、保存する情報を検討することもできます。 – patrik

答えて

1

問題はおそらくclear allです。これにより、MATLABはすべての変数(スコープ内、グローバルおよび永続)を削除し、メモリからコンパイルされたスクリプトを再コンパイルし、すべてを再度ロードするようにします。

現在のスコープ内のすべての変数をクリアすることを目的としている場合は、代わりにclearを実行するだけでスクリプトの初期速度を上げることができます。あなたはclear var1 var2 ...

+0

@ジオバンナ、私は興味があります。これはあなたの問題を解決しましたか? – Skogsv

2

起動し、ファイル選択入力登場するまでの時間を使ってクリアするためにどの変数を指定した時間に、それはMCRをロードするのにかかるため、最も可能性がある場合

でも高速化を達成することができます。コンパイルにスプラッシュスクリーンを追加することができます。

エンドユーザーがコマンドラインから実行している場合は、アプリケーションが起動しているコマンドウィンドウに書き込むシステム/シェルでexeをラップします。

関連する問題