From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
10-02-2015 05:39 AM
一次元配列ではなく、二次元配列で0を挿入する場合、どのように組み立てればいいでしょうか。
配列
1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
5 x5 y5
10 x10 y10
11 x11 y11
12 x12 y12
13 x13 y13
14 x14 y14
15 x15 y15
18 x18 y18
NEW配列
1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
5 x5 y5
0 0 0
0 0 0
0 0 0
0 0 0
10 x10 y10
11 x11 y11
12 x12 y12
13 x13 y13
14 x14 y14
15 x15 y15
0 0 0
0 0 0
18 x18 y18
といったふうにしたいのです。
x、yの値は規則性のない変数です。
1列目に0を挿入した行全てに、同じように0を挿入するプログラムがわかりません。
度重なる質問、本当に申し訳ありません。
わかるかた、ご回答よろしくお願いします。
解決済! 解決策の投稿を見る。
10-02-2015 08:06 PM
こんにちは。
こんな感じでしょうか。以前KONDOH さんが作成されたVI を編集してみました
10-05-2015 01:44 AM
doradorachan 様
返信が遅れて申し訳ありません。
添付していただいたviを参考に、問題を解決することができました。
ご丁寧な指導、まことにありがとうございました。
もう一つだけ質問なのですが、
配列
1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
5 x5 y5
10 x10 y10
11 x11 y11
12 x12 y12
13 x13 y13
14 x14 y14
15 x15 y15
18 x18 y18
上記のような配列から、
配列2
3 x3 y3
4 x4 y4
12 x12 y12
13 x13 y13
14 x14 y14
の部分だけ配列から削除し、
配列3
1 x1 y1
2 x2 y2
5 x5 y5
10 x10 y10
11 x11 y11
15 x15 y15
18 x18 y18
配列3の結果を得る、引き算のような方法を教えて頂きたいです。
前回の質問と同様、x、yは規則性のない変数を表しております。
よろしくお願いいたします。
10-05-2015 08:10 PM
こんにちは、
「配列から削除」が探している関数ではないでしょうか。
配列から削除 関数 - LabVIEW 2015ヘルプ - National Instruments
http://zone.ni.com/reference/ja-XX/help/371361M-0112/glang/delete_from_array/
設定としては:
「指標(行)」でどの行から削除する、RYO1221さんの場合はおそらく指標の「2」になります。
「長さ」で何個の行を削除する、RYO1221さんの場合では「5」個の行になります。
10-05-2015 09:33 PM
foxhound73様
ご回答ありがとうございます。
「配列から削除」を用いた場合、私の望むような結果にはならないようです。
完全に自分の説明不足でした。
本当に申し訳ありません。
配列 削除配列
1 x1 y1 3 x3 y3
2 x2 y2 4 x4 y4
3 x3 y3 12 x12 y12
4 x4 y4 ― 13 x13 y13
5 x5 y5 14 x14 y14
6 x6 y6
7 x7 y7
8 x8 y8
9 x9 y9
10 x10 y10
11 x11 y11
12 x12 y12
13 x13 y13
14 x14 y14
上記のように、引き算のような処理を行い、
1 x1 y1
2 x2 y2
5 x5 y5
6 x6 y6
7 x7 y7
8 x8 y8
9 x9 y9
10 x10 y10
11 x11 y11
削除配列を、元の配列から0列目の数に対応した行を削除したいです。
アドバイスをお願いします。
前回の質問と同様、x、yは規則性のない変数を表しております。
よろしくお願いいたします。
10-06-2015 01:53 AM
foxhound73 さんの言う通り、配列から削除の関数でできます。
もちろん配列から削除の関数では、バラバラの行や列を一度に削除できないので、
ループやシフトレジスタを使用する必要があります。
前回添付したサンプルなどを参考に一度試してみてから、また聞いてください。
10-06-2015 05:39 AM
doradorachan様
適格なアドバイス、ありがとうございます。
基本的な部分が理解できていませんでした。
今後とも、宜しくお願いいたします。
10-07-2015 11:25 PM
doradorachan様のアドバイス通り、下図のviを試したのですが、配列から削除したい部分が、正しく削除されませんでした。
どこに原因があるのかが、わかりません。
具体的には、下図の画像のように、
「削除配列2(右)」部分(0行目、158~173区間)が、右の「配列」から削除されるはずが、
削除されたのは(わかりやすく、削除された行には0を挿入してあります)、158、160、162、…と、偶数部分だけになってしまいます(左配列のような)。
また、削除したい335~の部分に関しては、削除されず、元配列のまま出力されていました。
何故このような結果になるか、わかりません。
ご回答、宜しくお願いいたします。
10-08-2015 07:37 AM
(横槍かも知れませんが・・・)
要素を削除すると(Forループの一番最後)、それによって消した箇所以降は指標がずれます。
なのに、指標を探すための配列は元の配列のままなので
(つまり、消したことが反映される [▼]=シフトレジスタ でなく、元の配列から来たもので一致する指標を探しているので)
見つかった指標は「今の」場所ではなく、「ずれた場所」を消していってしまいます。
335以降が消えないのも、消すたびに配列は小さくなるのに、元の配列で指標を探しているので、
途中から「存在しない配列」を消そうとするせいです。
Forに入る前に2次元配列を分岐した片方が [▼] に、片方がそのままトンネルになっているので、
トンネルにしないで、Forの中で [▼] から分岐したら如何でしょうか。
消した状態を反映して、指標を探すので、正しい場所を消してくれると思います。
10-09-2015 05:42 AM
M.Shiraishi様
わかりやすい回答、ありがとうございます。
forループ内で分岐させたところ、無事問題を解決できました。