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

 Réponse acceptée

Guillaume
Guillaume le 12 Déc 2014
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 commentaires

Jan Morawietz
Jan Morawietz le 12 Déc 2014
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
Jan Morawietz
Jan Morawietz le 12 Déc 2014
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)
Jan Morawietz
Jan Morawietz le 12 Déc 2014
thank u

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by