error to assign string in field struct's
2 ビュー (過去 30 日間)
古いコメントを表示
>> SlippSource(2)
ans =
categorical
From instrument
Sis(:).Slipp
ans =
'From strategy'
ans =
'From strategy'
ans =
'From strategy'
>> class(Sis)
ans =
'struct'
>> size(Sis)
ans =
1 73
>> [Sis.SlippSource]=SlippSource(2)
Error using ()
Too many output arguments.
0 件のコメント
採用された回答
Walter Roberson
2023 年 9 月 23 日
Compare:
Sis(73).Slipp = 'example';
[Sis.SlippSource] = testfun();
function output = testfun()
output = 123;
end
2 件のコメント
Walter Roberson
2023 年 9 月 23 日
Sis(73).Slipp = 'example';
[Sis.SlippSource] = deal(testfun());
whos Sis
function output = testfun()
output = 123;
end
Your Sis is a 1 x 73 struct. When you use [Sis.SlippSource] = SlippSource(2) then SlippSource(2) would have to be an expression that returns at least 73 output arguments.
Remember, when you have a non-scalar struct A then [A.B]=C is equivalent to coding [A(1).B, A(2).B, A(3).B, ... A(end).B] = C; which requires that C has enough outputs.
If you want to assign the same value to a particular field in each entry in the struct, then use deal like I show here.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!