私は現在、学校のMATLAB最終プロジェクトに取り組んでいます。プログラミングに関しては、自分自身はかなり知識が豊富で熟練していると思います。しかし、Matlabにはあまりにも多くの奇妙な点があります。
基本的な質問 (答えを見つけた後にこれを実現しました)!値の代わりに変数の名前を使用せずに、GUIハンドルオブジェクトの呼び出しで変数を使用するにはどうすればよいですか?
言い換える と、フィールド名に変数を使用します(これが単純であることがわかっていれば、尋ねることはありませんでした)
私のプロジェクトは、古くからの「戦艦」ゲームの簡単な表現を構築することです。
私の問題:私は現在、船のピース用に5つのオブジェクト(軸)を持っています。それらは、別の場所(グリッド)に移動するために一度に1つずつ選択されます。ボタンをクリックした後、 setpixelpositionを使用して各オブジェクトを移動できます。
今ボタンクリックの下に、私はこのようなものを持っています
function btnPlaceShip_Callback(hObject, eventdata, handles)
%Store the current selected ship(passed from an onclick to a label)
ship = get(handles.lblSelectedShip,'string');
%I have tried everything I could think of, but basically I want to achieve the
%following
setpixelposition(handles.ship, [0 250 50 250])
%where the variable 'ship' contains the name of the object.
つまり、var ship ='shipAircraftCarrier'、および..
setpixelposition(handles.shipAircraftCarrier, [0 250 50 250])
動作します!(示された特定の船の位置を設定します)。ただし、変数shipを使用すると、matlabは文字列を文字通り受け取り、その値は受け取りません。代わりに変数を使用すると非常に便利です。
誰かが解決策を持っているなら、私は感謝するでしょう。私はWebを精査しましたが、Matlab GUIに関する基本的な理解が不足している可能性があります-matlabヘルプドキュメントは非常に説明的ではなく、あまり役に立ちません。