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);