Re: [討論] 有關於arrayfun處理struct array的問題
※ 引述《wdw0925 (wdw0925)》之銘言:
: 這是把struct當成array來處理的範例:
: datas = repmat(struct('x', [], 'y', []), 100, 1)
: for i = 1:100
: numData = randsample(10:100, 1);
: datas(i).x = randn(numData, 1);
: datas(i).y = 1 + datas(i).x* 2 + randn(numData, 1);
: end
: lmModels = arrayfun(@(d) fitlm(d.y, d.x), datas, 'uni', false);
: 這是之前某位大神po的code 小弟想問的是最後一行
: lmModels = arrayfun(@(d) fitlm(d.y, d.x), datas, 'uni', false);
: 是什麼意思呢? 請各位大大指教 謝謝!
https://www.mathworks.com/help/matlab/ref/arrayfun.html
B = arrayfun(func,A)
B = arrayfun(___,Name,Value)
@(d) fitlm(d.y, d.x)
是一個匿名函數,就是將
function func(args)
...
end
略去函數名 func ,僅用一次的函數定義。
@ 得到 function handle ,用於 callback 功能。
(https://stackoverflow.com/a/2100680 )
這裡就是將輸入參數(已假定為結構變數)中的欄位分別輸入 fitlm()
datas 即為此一輸入參數。
後面的 'uni', false 是 arrayfun 選項 'UniformOutput', false
用途請參考 matlab 文件(第一個連結)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.166.85
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1510313368.A.32E.html
※ 編輯: sppmg (36.231.166.85), 11/10/2017 19:30:27
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章