iterate structures: Error message

Can someone please help me with this iteration:
Assumme I have the following components of a strcuture:
field1 = 'FinObj'; value1 = 'StockSpec';
field2 = 'Sigma'; value2 = [1,2,3];
field3 = 'AssetPrice'; value3 = [0.2,0.3,0.2];
I need to create three different structures. The following code is not working:
struct_array=struct([]);
for n = 1:3
struct_array(n) struct(field1,value1,field2,value2(n),field3,value3(n));
end
Thank you for any help! Best Jan

 采纳的回答

field1 = 'FinObj'; value1 = 'StockSpec';
field2 = 'Sigma'; value2 = [1,2,3];
field3 = 'AssetPrice'; value3 = [0.2,0.3,0.2];
s_array = struct(field1, value1, field2, num2cell(value2), field3, num2cell(value3))

5 个评论

thank you for your quick response!
one additional question:
is there a similiar command for matlab's term structure function, i.e.
StartDates = (MNDate)';
EndDates = (MXDate)';
Rates = (Rates);
Compounding = -1;
Rate_array = intenvset('StartDates', num2cell(StartDates),'EndDates', num2cell(EndDates), 'Rates', num2cell(Rates),'Compounding', Compounding);
unfortunatley the code above does not work
MNDate and MXDates are vectors with length of 100 days. Rates are given for each date
I know nothing about the financial toolbox, I'm afraid.
You can always use arrayfun to create a an array from scalars. This should work assuming intenvset returns a structure:
Rate_array = arrayfun(@(sd, ed, r) intenvset('StartDates', sd, 'EndDates', ed, 'Rates', r, 'Compounding', -1), MNDate, MXDate, Rates)

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Structures 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by