NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

配列 x行y列を指定して出力と挿入を行いたい

解決済み
解決策を見る

始めまして,よろしくお願いします.

 

大学の研究でLabViewを使用しており,

配列の任意に選択したx行y列の値をDAQへ出力し,応答を処理して任意のxx行yy列へ格納するということを100回や1000回繰り返し行うVIを作成しようとしています.

 

具体的に行いたいことは,

① 10×10の行列を用意し,初期値を設定する.

② 任意のx,yをVIに与え,x行y列の要素の値をDAQに出力する.

③ ②の10秒後の応答をDAQで測定する.

④ ③で得た値を計算(a倍)した値を得る.

⑤ ④の値を任意のxx,yyをVIに与えてxx行yy列に格納する.

⑥ ②~⑤をn回繰り返す.

⑦ 最終的な10×10の行列をファイルに出力する.

 

これらの工程について,部分部分を作成して確認している段階です.

④までの初期値の設定やDAQの入出力,場合分け等については問題なく行えているのですが,

⑤の行列への入力が希望通りできず,詰まっています.

 

ひとまず入力に波形生成VIを用いて,行列として配列を使用して作成しているのですが,

任意の要素の選択や,以前の値の保持の方法が理解できておらず,

実行すると1行1列の場所が選択され,(1,1)に値が入力されるのみで他の要素の値が0となってしまいます.

 

目的としている配列として行いたい操作はこんな感じです.

insert

 

 

配列の理解が不足していることが原因だと思うのですが,アドバイス等いただければありがたいです.

よろしくお願いします.

0 件の賞賛
メッセージ1/4
5,770件の閲覧回数

Replace Array Subset を使ったのではダメですかね?

添付図では第3行第4列の値を0から1に変更しています。

 

的外れな返答でしたらご勘弁を。

メッセージ2/4
5,754件の閲覧回数
解決策
トピック作成者masaki.araiが受理

>>任意のxx,yyをVIに与えてxx行yy列に格納する

 

のところは、tty様のように、Replace Array Subset で、行と列を指定して要素(または部分配列)をつなげば、

その要素だけ書き換えられます。

 

もう1つの、

 

>>任意の要素の選択や,以前の値の保持の方法が理解できておらず,

>>実行すると1行1列の場所が選択され,(1,1)に値が入力されるのみで他の要素の値が0となってしまいます.

 

で、「以前の値の保持の方法」は、100回、1000回とループを回すようなので、「シフトレジスタ」というものを

使えば良いかと思います。ForやWhileなどのループの左右の「へり」の部分で、右クリックして作ることができます。

▼と▲の対のマークが出るので、左から、ループに入る際の初期値を、ループの中で配列に対する

処理を書き、つなぐと、ループを回るたびに、前のループで処理した結果が次の回で左から出てきます。

最後にループを抜けるとき、右側から出てきます。

 

添付は、そのあらましを書いた、(動作上はほとんど無意味な)ダイアグラムです。

 

なお、LabVIEWの配列は、先頭要素は1行1列ではなく、0行0列なのと、2次元配列で

要素を指定するときは、行・列の順(Y→Xの順)に指標を指定しますので、ご留意下さい。

 

メッセージ3/4
5,743件の閲覧回数

tty様M.Shiraishiありがとうございます.

 

いただいたサンプルを元にVIを作成できそうです.

 

 

また分からないことがありましたら,よろしくお願いします.

0 件の賞賛
メッセージ4/4
5,714件の閲覧回数