Put IDS into Non-default OccurrenceΒΆ
This example focuses on putting IDS into another occurrence.
See also
API documentation for: imas_list_all_occurrences()
ctx = imas_open('imas:mdsplus?path=./testdb_mdsplus', mode);
% default occurrence for get/put is 0
% list of available occurrences can be found inside Data Dictionary documentation.
equilibrium = ids_init('equilibrium');
% set mandatory field
equilibrium.ids_properties.homogeneous_time = 1;
% when ids_properties.homogeneous_time is set to IDS_TIME_MODE_HOMOGENEOUS,
% all time-dependent fields values correspond to <ids>.time vector.
equilibrium.time = [1.0, 2.0, 3.0];
% fill fields with some data
equilibrium.ids_properties.comment = '1st comment';
% put IDS into occurrence 1
ids_put(ctx, 'equilibrium', 1, equilibrium);
% modify data, so differences between occurrences can be spotted
equilibrium.ids_properties.comment = '2nd comment';
% put IDS into occurrence 2
ids_put(ctx, 'equilibrium', 2, equilibrium);
clear equilibrium;
% NOTE: there is ids_properties/occurrence_type structure
% it stores additional information about specific occurrence
% IDSs can be printed using fprintf() method
fprintf('Dumping equilibrium (occurence 1) from put_another_occurence() function\n');
equilibrium_check = ids_get(ctx, 'equilibrium', 1);
fprintf('\tequilibrium.ids_properties.homogeneous_time: %i\n', equilibrium_check.ids_properties.homogeneous_time);
fprintf('\tequilibrium.time: %i %i %i\n', equilibrium_check.time);
fprintf('\tequilibrium.ids_properties.comment: %s\n', equilibrium_check.ids_properties.comment);
% occurrences can be listed with imas_list_all_occurrences() function
% imas_list_all_occurrences also returns content of IDS pointed by node_path argument
% NOTE: imas_list_all_occurrences() works only with 1D CHAR_DATA
[occurrence_list node_content_list] = imas_list_all_occurrences(ctx, 'equilibrium', 'ids_properties.comment');
fprintf('occurence list: [%i %i]\n', occurrence_list);
fprintf('equilibrium/ids_properties/comment in different occurrences: \n');
disp(node_content_list);
clear equilibrium_check;
imas_close(ctx);