ここから本文です

scilaのGUIについて

greenapple_171さん

2014/4/2711:11:46

scilaのGUIについて

scilabのGUIについて質問いたします。

あるポイントデータの3次元プロットを考えます。

//-----------------
A = rand(10,3);
B = rand(10,3);
C = rand(10,3);

function p3mark(data,setcolor)
param3d(data(:,1),data(:,2),data(:,3))
set(gce(),'line_mode','off')
set(gce(),'mark_mode','on')
set(gce(),'mark_size',1)
set(gce(),'mark_style',3)
set(gce(),'mark_foreground',color(setcolor))
set(gca(),'isoview','on')
endfunction

p3mark(A,'blue');
p3mark(B,'green');
p3mark(C,'red');

//-----------------
このようにポイントデータをすべてプロットすることはできたのですが、
自分がやりたいことは、スクロールで指定した時系列のポイントデータのみを表示したいです。

A,B,Cのデータの行を時間とみなし、GUIのスクロールバーで時間を移動させたときの該当したA,B,Cのポイントデータのみをプロット操作したいです。

例えば、スクロールバーをゼロ(最も左?)にしているとき、A,B,Cの1行目の情報だけをプロット(つまり、3つのポイントがプロットされている状態)。そして、スクロールバーを右側へ移動させたら、A,B,Cの2行目、3行目の情報...といったようにプロットしたいです(スクロールバーがn行目に該当しているときは、A,B,Cデータのn行目の情報のみプロットしたいです)。

色々と調べたらuicontrolが必要そうですが、なかなか情報が少なく困っています。

エンジニアの方や、scilabに詳しい方、どうかよろしくお願いします。

閲覧数:
317
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

qgsjs452さん

2014/4/2717:07:02

このような感じでしょうか?
uicontrolは分かりづらいですよね。

function p3mark(data,setcolor)
param3d(data(:,1),data(:,2),data(:,3))
set(gce(),'line_mode','off')
set(gce(),'mark_mode','on')
set(gce(),'mark_size',1)
set(gce(),'mark_style',3)
set(gce(),'mark_foreground',color(setcolor))
set(gca(),'isoview','on')
endfunction

function slider_update()
sl = get("slider_01");
txt = get("slider_text_01");
sl_01=round(get(sl, "Value"));
set(txt, "String", string(sl_01));

scf(1);
clf;
p3mark(A(sl_01,:),'blue');
p3mark(B(sl_01,:),'green');
p3mark(C(sl_01,:),'red');

endfunction

f=figure(0,"infobar_visible", "off",...
"toolbar_visible", "off",...
"dockable", "off",...
"menubar", "none",...
"default_axes", "off", ...
"position", [50 50 200 70],...
"resize", "off");

slider_text = uicontrol(f, "Position", [175 10 30 50],...
"Style", "text",...
"FontSize", 12,...
"FontWeight", "bold",...
"BackgroundColor",[1 1 1],...
"HorizontalAlignment", "center",...
"Tag", "slider_text_01");

theslider = uicontrol(f, "Position", [10 10 160 50],...
"Style", "slider",...
"Min", 1,...
"Max", 10,...
"Value", 1,...
"SliderStep", [1 2],...
"Tag", "slider_01",...
"Callback", "slider_update();");

slider_update();

A = rand(10,3);
B = rand(10,3);
C = rand(10,3);

このような感じでしょうか?
uicontrolは分かりづらいですよね。

function...

質問した人からのコメント

2014/4/28 08:23:00

成功 すごすぎます!本当にありがとうございます!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。