Filter löschen
Filter löschen

Pass Cell array to matlab function via Bash script

6 Ansichten (letzte 30 Tage)
Oliver Warrington
Oliver Warrington am 5 Mär. 2019
Beantwortet: Chang am 30 Nov. 2021
I have a Matlab function that I want to take a cell array as it's input and do something to each element:
function RegSPM(Subjects)
for s = 1:length(Subjects)
display(s)
end
end
and I have a bash script that creates a Subjects array and I want to pass this to the RegSPM function:
Subjects=('S01' 'S02')
matlab -r "RegSPM($Subjects)"
But Matlab doesn't get the list and instead gives the error:
RegSPM(S01,)
Error: Invalid expression. When calling a function or indexing a variable, use
parentheses. Otherwise, check for mismatched delimiters.
Any body have any ideas on how to do this properly? I think I'm missing something.
Thank you.

Antworten (2)

Patel Mounika
Patel Mounika am 12 Mär. 2019
Try using curly braces {}, instead of smooth parentheses () to create the Subject cell array.
Subjects={'S01','S02'};
You can also refer to the below thread.
Hope this solves.
  1 Kommentar
Oliver Warrington
Oliver Warrington am 12 Mär. 2019
I tried using:
Subjects={'S01','S02'};
matlab -r "RegSPM($Subjects)"
But unfortunately it does not seem to think of it as a list input to the function and I get the error:
Undefined function or variable 'S01'.
Thank you for trying Patel!

Melden Sie sich an, um zu kommentieren.


Chang
Chang am 30 Nov. 2021
I had the same issue and I tried below.
It worked.
Subjects={"'S01'","'S02'"}

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by