NI製品ディスカッション

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

For next ループを逆に回すことは出来ますでしょうか

お世話になります。

やっと、シフトレジスタが使える様になった初心者です。

お教え下さい。

以下のようなFor-nextを組むことは出来るのでしょうか

-------------------------

indat(100)
outdat(100)

for i=99 to 50 step -1

 a=indat(i)
 b=outdat(i+1) ;前回出力値
   c=処理(a,b)
 outdat(i)=c

next i  

-------------------------

 

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

LabVIEWならば、配列の順序をひっくり返す関数があった気がします。

それで順番を逆にすれば、ループを逆に回すのと同じになると思います。

的外れな回答でしたらすみません。

0 件の賞賛
メッセージ2/6
5,371件の閲覧回数

KKY 様

 

平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部 見目と申します。
この度は、弊社ディスカッションフォーラムをご利用頂きまして誠に有難うございます。

 

Forループをご使用頂いている際に、前回の値を使用するためには、
KKY様の仰る通り、シフトレジスタをご使用頂ければと思います。

お恥ずかしながら、テキスト言語には疎く、KKY様のご要望の動作をご説明頂けますようお願い申し上げます。

 

LabVIEWではループの実行回数を0からスタートして、iとしてカウントします。
従って、混同を避けるためKKY様記載の変数iをxとしてご説明させて頂きます。

 

a=indata(x)
b=outdat(x+1)
outdat(x)=c(a,b)

 

はxが99からスタートし、i(ループの実行回数)が0からスタートする場合、
x=99-iとなり、

 

a=indat(99-i)=indat(i)
b=outdat(99-(i-1))=outdat(100-i)=outdat(i-1)
outdat(99-i)=c(a(i), b(i-1)=outdat(i)

 

という認識でよろしいでしょうか。
上記内容ですと、添付画像で行えるかと思いますのでご確認頂けますでしょうか。


大変お手数ですが、検討違いの場合は、ご指摘頂けますでしょうか。

 

上記内容に関しましてご不明点やご質問がございましたら、
どうぞお気軽にご連絡いただけますよう宜しくお願い申し上げます。

 

日本ナショナルインスツルメンツ 見目 ルツ

0 件の賞賛
メッセージ3/6
5,352件の閲覧回数

山本様、ご教示ありがとうございます。そうですね
For-nextを逆に回すことにこだわらなくても良いですよね
柔軟に考えれば、おっしゃられる通りですね。
何か明かりが見えた気がします。ありがとうございました。

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

見目様、ご教示ありがとうございます。
For-nextは標準通りに使用し、入力配列から取出す値のi(指標値)を
ひっくり返すと言うことですね。
ご丁寧なご教示ありがとうございました。

このやり方で、再度挑戦してみたいと思います。
今後ともよろしくお願い致します。KKY

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

KKY 様

 

日本ナショナルインスツルメンツ技術部 見目でございます。
お忙しい中ご連絡頂きまして誠にありがとうございます。

 

上記方法でお試し頂き、プログラミングを行って頂く上で、
また何かお困りの事がございましたら、どうぞお気軽にお問い合わせ頂ければと思います。

 

この度は弊社ディスカッションフォーラムをご利用いただきまして誠にありがとうございます。
今後とも弊社製品を末永くご愛顧いただけますよう重ねてお願い申し上げます。

 

日本ナショナルインスツルメンツ 見目 ルツ

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