Pass Cell array to matlab function via Bash script

3 ビュー (過去 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 ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by