0
仍嘗試掌握Matlab的基礎知識。多次調用數組上的函數
我有一個函數f,它需要一個矩陣A和兩個數字(max和delta)作爲參數。
我還有一個函數g,它取一個矩陣A和一個數字閾值並返回一個矩陣B,如果A中元素的值大於或等於閾值,則B中的對應值應爲1,如果它小於或等於-threshold,則應該是-1,否則爲0.原始矩陣不應該在函數f也不在g中變化。
我希望函數f在調用g時爲閾值嘗試不同的值,並且我希望每次調用的結果在新矩陣中水平排列。
我不知道如何做到這一點的函數f,我猜最簡單的方法是創建一個數組:
t1= [-threshold:delta:threshold];
,但我怎麼叫g下在元素的每個值數組並將它們排列在一個新數組中?
function B = f(A, threshold, delta)
t1= [-threshold:delta:threshold];
%What to write here?
end
function B = g(A, threshold)
B=(A>=threshold)-(A<=-threshold);
end
如果
A=[[-3:-1]' [1:3]']
然後
f(A, 2, 1)
應返回相同矩陣作爲命令[[-1 -1 0] '[0 1 1]'[-1 - 1 0]'[0 1 1]']
謝謝。 爲什麼存儲數據是一種奇怪的方式?我有許多信號存儲在A中,我想嘗試在不同的閾值下對它們進行離散化,並查看與目標信號的相關性是否更高。對我來說,將它們排列在一起然後與矢量進行關聯是有意義的。它還是奇怪嗎? – user1661303
如果它符合您的目的,它就沒有問題,它只是使數據難以訪問,正如您在我的答案中的第二個代碼塊中所看到的,索引變得非常難看,再加上您需要知道單個數據的寬度設置,在第四塊的索引更簡單,它是'result(x座標,y座標,閾值索引)'。你如何做相關? – pseudoDust