11-05-2015 11:14 PM
新海と申します。labview2014を使用しています。よろしくお願いいたします。
今回、助力をお願いしたいことは配列要素の抜き出しについてです。
現在行っている処理は二つの波形振幅A,Bが同時刻に合わせて2列に並んでいる配列についてで、1列目のある要素の時の2列目の振幅値を抜き出すという処理を行っています。
希望する処理は「Ai<0かつAi+1>0のとき、|Ai|<|Ai+1|ならばAiとBiを抜き出し、|Ai|>|Ai+1|ならばAi+1とBi+1を抜き出す」という処理です。このあと、再び配列として保存を考えています。今、詰まっている個所はカギかっこで囲んだ部分でforループとケースストラクチャで作っているのですが、配列の要素を条件にかける方法がわからず手詰まりになってしまいました。
ご教示いただければ幸いです。
解決済! 解決策の投稿を見る。
11-06-2015 01:01 AM
nu0617 様
配列の処理を行う時にはFORループに入力して、「自動指標トンネル」を使って、個々の要素を取り出します。
一つ前の要素を使う時には「シフトレジスタ」を使ってデータを次の回へ送ります。
ある条件を満たした時だけ要素を取り出す場合には「条件付きトンネル」を使います。
こんな感じになります。
11-06-2015 06:38 AM
KONDOH 様
nu0617です。お返事ありがとうございます。
実例を踏まえた解説ありがとうございます。シフトレジスタの使い方を知らなかったので、こんなに簡単にできるとは思いませんでした。
私の方でも添付のファイルを参考に進めてみたところ、入力波形の部分を記録したスプレッドシートからの配列に置き換えることで、目的の結果を得ることができました。
本当にありがとうございました。
11-11-2015 03:17 AM
何度もご迷惑をおかけしてすみません。nu0617です。
このシフトレジスタというものは配列の2つ前の要素を使用することもできるのでしょうか。
たとえばsin波形のピーク値を抽出したい場合、「An<An+1かつAn+1>An+2のときAn+1の値を抽出する」という動作にしたいと考えているのですが
可能でしょうか。
よろしくお願いします。
11-11-2015 04:55 AM
左枠のシフトレジスタを右クリックして要素を追加を選択するか、またはシフトレジスタの下部にカーソルを合わせてドラッグすると、2つ以上前のデータにアクセスすることができます。
http://www.ni.com/getting-started/labview-basics/ja/shift-registers
おそらくお望みのことはこの機能を使えば実現できるかと思います。
一つ申し上げると、上のページは「LabVIEW シフトレジスタ 複数」という検索ワードですぐ見つかるものです。
フォーラムで聞く前にまずGoogle検索などで調べるようになさった方が良いかと存じます。
よろしくお願いします。
11-11-2015 05:43 AM
gustav2525 様
nu0617です。
教えていただいたURLは確認していたのですが、細かいところまで目を通していなかったので、スタックシフトレジストをよく理解していませんでした。
ご指摘の通りコミュニティ投稿前のヘルプの活用やgoogle検索は重要だと思います。お恥ずかしい限りです。
結果的に目的のブロックダイアグラムを作成することができました。
ありがとうございました。