Re: [討論] 有關於arrayfun處理struct array的問題

看板MATLAB作者 (sppmg)時間7年前 (2017/11/10 19:29), 7年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1Q1OsOCk (MATLAB)
文章代碼(AID): #1Q1OsOCk (MATLAB)