簡體   English   中英

在Matlab中,對於多輸入函數,如何將單個輸入用作多個輸入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM