Multiplication of two fields in a structure array
9 次查看(过去 30 天)
显示 更早的评论
Hi. I want to perform element wise multiplication of two fields in a struture array. The size of the fields is same throughout for a given Struct(i). When, I use the code below it gives the following error:
"Argument to dynamic structure reference must evaluate to a valid field name"
for i=1:length(Struct)
Struct(i).dx_dc1=(Struct(i).L1).*(cos(Struct(i).phi1));
Struct(i).dy_dc=(Struct(i).L1).*(sin(Struct.(i).phi1));
Struct(i).dx_dc2=(Struct(i).L2).*(cos(Struct(i).phi2));
Struct(i).dz_dc=(Struct(i).L2).*(sin(Struct(i).phi2));
end
2 个评论
Guillaume
2020-1-15
Are you sure that it's the exact code with no modification that you're running?
This code doesn't have any dynamic structure reference so it would be very surprising for you to get the error stated. Now, if you had something like:
Struct(i).(something) %brackets around something make it a dynamic struct ref
then yes, you could get this type of error.
采纳的回答
Steven Lord
2020-1-15
You made a typo on this line.
Struct(i).dy_dc=(Struct(i).L1).*(sin(Struct.(i).phi1));
There shouldn't be a period between Struct and (i) in the sin call.
Struct(i).dy_dc=(Struct(i).L1).*(sin(Struct(i).phi1));
2 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!