How to pass cell array as input to function

35 visualizzazioni (ultimi 30 giorni)
I have a cell array which contains 10 {1x1 cell} cells now I want to pass this cell array as input to a function and access the element inside the {1x1 cell} how should I pass the cell array?
  1 Commento
James Tursa
James Tursa il 19 Dic 2019
You pass it just like you would pass any other variable. And extract the contents using the curly braces { } inside your function. Can you show us the code that is giving you problems?

Accedi per commentare.

Risposta accettata

Adam Danz
Adam Danz il 19 Dic 2019
Modificato: Adam Danz il 20 Dic 2019
" I want to pass this cell array as input to a function and access the element inside"
There are (at least) three interpretations of that.
Pass each element in as a single input
C = arrayfun(@(x){x},1:10); % demo data
z = myFun(C{:});
function z = myFun(a,b,c,d,e,f,g,h,j,k)
z = a+b+c+d+e+f+g+h+j+k;
end
Condense the inputs into a vector and pass as 1 input
C = arrayfun(@(x){x},1:10); % demo data
y = myFun2([C{:}]);
function z = myFun2(n)
z = sum(n);
end
Pass the entire cell array
C = {1,2}; % demo data
y = myFun2(C);
function z = myFun2(n)
z = C{1} + c{2};
% or
% z = sum([C{:}]);
end
  3 Commenti
Adam Danz
Adam Danz il 20 Dic 2019
Modificato: Adam Danz il 20 Dic 2019
Ah... good.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by