[英]In Matlab, for a multiple input function, how to use a single input as multiple inputs?
我有一個函數,它接受可變數量的輸入,比如myfun(x1,x2,x3,...)
。
現在如果我將輸入存儲在結構數組S中,我想做像myfun(S.x1,S.x2,...)
這樣的事情。 我該怎么做呢?
您可以先使用STRUCT2CELL將結構轉換為單元格數組,然后使用它來生成多個輸入的列表。
S = struct('x1','something','x2','something else');
C = struct2cell(S);
myfun(C{:});
請注意,定義S
中字段的順序是輸入的傳遞順序。 要檢查字段的順序是否正確,可以在S
上運行fieldnames
,該字段名返回一個字段名稱與C
的值對應的單元格。
要添加到Jonas的答案中的東西:實際上你可以省略結構並向右移動單元格,然后將其擴展為函數參數的列表:
c = {125, 3};
nthroot(c{:})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.