[問題] function 裡的eval 產生的變數如何傳值已回收
大概的想法是,寫一個function
然後傳回六個變數並每個都含有各自的值
h = 1:6;
function needvariable(h)
for i = 1:length(h)
eval(['h' num2str(i) ' = i '])
end
希望回傳的是
h1 = 1
h2 = 2
......
h6 = 6
該怎麼用…因為function需要有固定值才能傳值回來
變數會跟著h的長度改變。
謝謝
摸了兩天,總算了解到一點點
希望對往後有相同問題的人可以幫到忙
h = 1:6;
function varargout = ttt(h)
nout = max(nargout,1)-1;
for i=1:length(h)
eval(['a' num2str(i) '= i;']);
eval(['varargout(' num2str(i) ') = {a' num2str(i) '};']);
end
使用一個叫varargout的指令來完成。
外部指令就打
[a b c d e f ]=ttt(h); %這樣就可以得到六個值
%想要少一點五個也是可以跑值的。
%所以想要多少變數就在外層用eval跑變數
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 109.246.225.213
※ 編輯: world210 來自: 109.246.225.213 (08/27 01:36)
→
08/27 02:52, , 1F
08/27 02:52, 1F
→
08/27 02:53, , 2F
08/27 02:53, 2F