Inserting doubles into the field of a struct

3 次查看(过去 30 天)
Wondering if anyone knows how to insert a "double" into a struct. I was trying to use the following code to do it but I keep getting the error "Scalar structure required for this assignment."
Updating.GoodNews = Upda;


Chunru 2022-9-19
load(websave("Updating.mat", ""))
load(websave("Upda.mat", ""))
Name Size Bytes Class Attributes Optimism_EMA_Updating 29x1 3312 struct Upda 28x31 6944 double cmdout 1x33 66 char
% Optimism_EMA_Updating is an array of structure
% assignment should be done for struct element
Optimism_EMA_Updating(1).GoodNews = Upda;
ans = struct with fields:
SubID: 21760059 GoodNews: [28×31 double]

更多回答(1 个)

Image Analyst
Image Analyst 2022-9-19
It's because Updating is a structure array so you need to put Upda into a new structure in the array. This works, where I append Upda to the existing array:
% Load mat files into structures.
s1 = load('Updating.mat')
s2 = load("Upda.mat")
% Extract variables from the structures.
Optimism_EMA_Updating = s1.Optimism_EMA_Updating
Upda = s2.Upda
% Append Upda as a new structure at the end of the structure array
Optimism_EMA_Updating(end+1).SubID = Upda
  1 个评论
BA 2022-9-19
Thank you for the help! Unfortunately, I think CHunru's answer came a few seconds before yours. I wish I could accept both but I don't think I can





Community Treasure Hunt

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

Start Hunting!

Translated by