0
我熟悉紙上的迭代方法,但MATLAB編碼對我來說是比較新的,我似乎無法找到一種編碼方式。使用五點模板來評估與矢量輸入的函數並收斂到最大輸出值
在代碼語言...
實際上,這就是我:
A = { [1;1] [2;1] [3;1] ... [33;1]
[1;2] [2;2] [3;2] ... [33;2]
... ... ... ... ....
[1;29] [2;29] [3;29] ... [33;29] }
... 2×1列向量的29x33單元陣列,這是我得到了來自:
[X,Y] = meshgrid([1:33],[1:29])
A = squeeze(num2cell(permute(cat(3,X,Y),[3,1,2]),1))
[感謝StackOverflow的成員誰幫我做這件事]
我有一個功能,調用這些列向量中的每一個並返回單個值。我想建立一個二維5點模板方法來評估一個列向量及其4個鄰居,並通過這5個列向量中的函數找到最大值。
即,如果我是從中間開始,評估的點將被:
1.
A{15,17}(1)
A{15,17}(2)
2.
A{14,17}(1)
A{14,17}(2)
3.
A{15,16}(1)
A{15,16}(2)
4.
A{16,17}(1)
A{16,17}(2)
5.
A{15,18}(1)
A{15,18}(2)
在這些5點,該方法會選擇一個從功能上最大的返回值,移動到該點,並重新運行方法。這將繼續,直到達到全球最大值。它基本上是一種迭代優化方法(儘管是最原始的方法)。注意:我無權訪問優化工具箱。
非常感謝。