Pass Cell array to matlab function via Bash script

9 ビュー (過去 30 日間)
Oliver Warrington
Oliver Warrington 2019 年 3 月 5 日
回答済み: Chang 2021 年 11 月 30 日
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.

回答 (2 件)

Patel Mounika
Patel Mounika 2019 年 3 月 12 日
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 件のコメント
Oliver Warrington
Oliver Warrington 2019 年 3 月 12 日
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!

サインインしてコメントする。


Chang
Chang 2021 年 11 月 30 日
I had the same issue and I tried below.
It worked.
Subjects={"'S01'","'S02'"}

カテゴリ

Help Center および File ExchangeGet Started with MATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by