0

ワークスペースから gui edittext ボックスに構造変数を取得しようとしていますが、多くの試行錯誤の末に成功しましたが、変数の表示中に別の問題に遭遇しました。

文字列をテキスト ボックスに適用すると、この警告が表示されます。単一行の編集コントロールには複数行のテキストを含めることができないので、このエラーを回避できるように、編集ボックス プロパティの最大ステップを 2 に変更しました。

私の意図は、シミュレーションが進行中の変数値を表示することでしたが、それを行うことができません。シミュレーションの完了後、しばらくしてから編集ボックスをクリックした場合にのみ、値が表示されますが、それもスクロールダウン表示のようなものです。

function edit3_Callback(hObject, eventdata, handles)
% hObject    handle to edit3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

simout=evalin('base','simout');
L = length(simout);
vars = cell(1,L);
[vars{1:L}] = simout.signals.values;
set(handles.edit3,'string',vars);
guidata(hObject,handles);

誰でもできるだけ早くこの問題を手伝ってください。

4

2 に答える 2

0

シミュレーションの進行中に編集ボックスに値を表示する場合は、を呼び出す必要があります

set(handles.edit3,'string',currentValue);

シミュレーション中(currentValueは表示する値です)。

シミュレーションの完了後、しばらくして編集ボックスをクリックした場合にのみ値が表示されますが、それもスクロールダウン表示のようなものです。

そのコードは「コールバック」関数内にあるため、クリックした後にのみ値が表示されます。この関数は、編集ボックスを操作したときに呼び出されます。シミュレーションの最後にその値をすぐに表示したい場合は、シミュレーションでsetコマンドを実行して、終了時に編集ボックスを更新します。

于 2012-05-31T07:12:13.570 に答える
0

実行中に Matlab プロセスが画面を更新しないという問題がある可能性があります。

更新後に含める必要がある場合がありdrawnowます。しかし、それはウィンドウがフォアグラウンドにある場合にのみ役立ちます。

個人的には、常にログ ファイルに書き込み、matlab の外に表示します。

于 2012-05-31T07:19:27.297 に答える