Zero out values in multiple fields of a struct
古いコメントを表示
Suppose I have
S.ABC0500 = struct('Keys',[1:9],'Values',rand(1,9));
S.ABC0800 = struct('Keys',[1:9],'Values',rand(1,9));
S.ABC0900 = struct('Keys',[1:9],'Values',rand(1,9));
S.Title = 'MyData';
S.Date = datetime('today');
How can I efficiently set all the values to zero? That is, I want to do
S.ABC0500.Values = zeros(1,9);
S.ABC0800.Values = zeros(1,9);
S.ABC0900.Values = zeros(1,9);
The number of ABC variables is large.
1 件のコメント
Stephen23
2023 年 5 月 5 日
"How can I efficiently set all the values to zero"
With more suitable data design: don't force meta-data into fieldnames. A non-scalar structure would likely be better:
採用された回答
その他の回答 (1 件)
I would recommend a different data organization:
S.Title = 'MyData';
S.Date = datetime('today');
S.ID=["ABC0500", "ABC0500", "ABC0900"]';
S.Values=rand(3,9);
S.Keys=repmat(1:9,3,1);
and then you can simply do,
S.Values(:)=0;
カテゴリ
ヘルプ センター および File Exchange で C2000 Microcontroller Blockset についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!