Re: [討論] 如何將structure內各field轉存為variables?
% 簡單的方式
set.ele1 = 1;
set.ele2 = 0.5;
set.ele3 = [10,5];
names_set = fieldnames(set);
for i = 1:length(names_set)
eval([names_set{i}, '=set.', names_set{i}, ';'])
end
% 透過你提供的程式
a = {'ele1 = set.ele1;','ele2 = set.ele2;','ele3 = set.ele3;'};
eval(a)
% Error: Undefined function 'eval' for input arguments of type 'cell'.
% sol:
for i = 1:length(a)
eval(a{i});
end
a = char(a);
eval(a)
% Error: Undefined function 'eeellleee123' for input arguments of type 'char'.
% sol:
for i = 1:size(a, 1)
eval(a(i, :));
end
char matrix會出錯的原因是因為matlab的矩陣是行先排
這意思是
ele1 = ...
ele2 = ...
ele3 = ...
他會縱得先讀,也就是最後會變成 eeellleee123 ===
當然就出錯了XD
※ 引述《kusoer1017 (如果是你..可以喔)》之銘言:
: 各位前輩大家好
: 我成功讓函數輸出structure了
: 現在希望讓structure中每個field
: 依照其field名稱生成variables
: 而內容則為原先variables的內容
: 如
: set =
: electronicdelay: 1.0900
: timeinterval: 0.0250
: res: 0.7000
: wavenumber: [7259x1 double]
: Nwavenumber: 7259
: Ntime: 4000
: time: [1x4000 double]
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.154.163
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1446958950.A.CC7.html
推
11/08 14:04, , 1F
11/08 14:04, 1F
推
11/08 14:09, , 2F
11/08 14:09, 2F
推
11/08 14:21, , 3F
11/08 14:21, 3F
→
11/08 15:01, , 4F
11/08 15:01, 4F
→
11/08 15:01, , 5F
11/08 15:01, 5F
推
11/08 20:39, , 6F
11/08 20:39, 6F
?? 不懂 這樣怎樣做到原PO想做的事情QQ
※ 編輯: celestialgod (180.218.154.163), 11/08/2015 21:43:26
推
11/09 00:48, , 7F
11/09 00:48, 7F
→
11/09 00:48, , 8F
11/09 00:48, 8F
→
11/09 00:48, , 9F
11/09 00:48, 9F
→
11/09 00:49, , 10F
11/09 00:49, 10F
→
11/09 01:50, , 11F
11/09 01:50, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章