2017-12-10 3 views
0

は、私は値の可変長セルを持っています?MATLABで

f(A1,...,An) 

最終的には不可能な場合、この機能を実現するためにこの機能の初めをどのように変更すればよいですか?

答えて

2

セル配列を中括弧インデックスを使用してcomma-separated listに変換する必要があります。つまり、C{:}を使用する必要があります。 reshape機能付き

例:

>> C = {ones(3,4), 2, 2, 3}; 
>> y = reshape(C{:}); 
>> size(y) % check 
ans = 
    2  2  3 
+1

は、私が試した:ここにドキュメントだよりについて

function asdf(varargin) yourarguments=[varargin{:}]; % if all numerical yourargumentscontain=contains(varargin,'asdf'); %if strings contained all_processed_args=cellfun(@(x) whateveryouwant_function(x), varargin); %for older versions of matlab end 

は、その後、あなたがこれらの「迅速かつ汚い」の処理方法の一つのために行くことができます(:)' ....私がいましたとてもトリッキーなディテールのために全体的な変更を書こうとしています! – hyprfrcb

1

これは「vararginのは君のためにまったく同じものです。複数の変数を読み込みます(例: f(a、b、c)を計算し、それらをセル配列に格納する。 `https://ch.mathworks.com/help/matlab/matlab_prog/parse-function-inputs.html

+0

これは逆に関数からの読み込みであり、関数への入力ではありません。 – hyprfrcb

+0

申し訳ありませんが、答えはあなたがvararginを使用していることを前提としています。私はこれが当てはまらないと思います。 – user2305193