1樓:糖糖寳寳
labview中並沒有明確的賦值的概念,和傳統的文字程式語言的思路不一樣,是資料流驅動的程式設計,在一般的文字程式語言裡,定義二維陣列變數的時候只是開闢了一塊記憶體空間,裡面是空的,所以要有賦值的過程,而labview中記憶體不需要手動分配,其後臺有自動管理記憶體的機制,出現新的二維陣列的時候,不需要變數定義,直接分配記憶體空間,然後就把資料存進去了。
如果硬要說有什麼「賦值」的話,labview中有幾種常見的類似於「賦值」的操作:
1.在二維陣列控制元件的前面板裡直接填入數值
這個最簡單,不用多說想必你也明白,手動填數。
2.建立單一元素的陣列
需要用到初始化陣列,見下圖
如果要建立一個3列5行的全是0的元素的二維陣列,方法如下圖
3.修改陣列中中的某一個或某一部分元素
鑑於labview有自動分配記憶體的管理機制,如果你取出陣列子集,插入新的陣列子集,每次操作都會將需要操作的陣列在記憶體裡複製一份,對於大陣列而言非常的耗費記憶體。
labview為了解決這種問題,有個元素同址操作的結構,見下圖
在結構的邊框上右鍵單擊在選單中可以新增對應的模組,如下圖
新增的時候都是成對新增,用這種結構可以避免只更改陣列內部分元素的時候記憶體裡複製陣列的現象。
2樓:
速度慢是因為使用了全域性變數,建議儘量不要使用全域性變數,如果必須要用,可以用functional global(功能全域性變數), 另外在使用陣列元素替換時,可以使用快取重用結構(lv8.5或以後版本),這樣可以減少記憶體的使用以及資料複製的時間。
3樓:匿名使用者
一、替換陣列子集 (需要記憶體)
二、程式設計》結構》元素同址操作結構》新增陣列替換子集(相同記憶體操作)
labview從一維陣列中查詢特定的陣列,返回該數值在陣列中所在的位置,希望能給個程式圖。
4樓:嚇棟棟
我這有一個簡單的例子,當在陣列中找到第一個和給定數值相同的數時,返回其在陣列中的位置。
若沒找到,返回-1.
當從0開始搜尋時,和「搜尋一維陣列」的功能是一樣的。
5樓:匿名使用者
將陣列按照被搜尋陣列的個數來分成若干個子陣列,然後迴圈比較就好了!
matlab中如何給矩陣中的某幾個特定位置賦值
用sub2ind a zeros 5 i 2 3 4 j 1 4 2 a sub2ind size a i,j 1 a 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 注意事項 matlab書寫表示式的規則與 手寫算式 差不多相同。如果一個指令過長...
C語言 給陣列中的元素賦值
好像沒有什麼直接的辦法,只有使用迴圈語句來判斷最後一個出現的非0值為最後一個元素,也就是說如果你初始化為1,2,3,0,4,5這樣有辦法判斷,但若初始化為1,2,0,3,0,0就沒辦法判斷了,只能判斷到3,因為3是最後一個非0值。因為系統預設會把其他部分都初始化為0,所以沒有辦法判斷 沒有賦值的元素...
怎麼取陣列的中間值,js 中如何取出陣列中的值?
已知陣列 a n 目前我想到兩種方法 先排序 一般使用快排 qsort 時間為 o nlogn 取中間數 a n 2 利用選擇排序,或氣泡排序,控制迴圈次數為 n 2 即可。因為這些排序每趟都能得到一個當前最大或最小值,所以執行完 n 2 趟後,就能取得中間數。時間為 o n 2 中位數 又稱中值,...