<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>Hi</p>
<p>In the following example, I'm digging into the Scilab help pages in order to understand how I can use hdf5 format; nevertheless I'm still wondering how I can have access to the sub-structure (sub-groups and datasets on them) ?</p>
<p>(I'm thinking in programming recursive search ...)</p>
<p>Thanks</p>
<p>Paul</p>
<p>#######</p>
<pre><span>mode</span><span>(</span><span>0</span><span>)</span>
<span>PATH</span> <span>=</span> <span>get_absolute_file_path</span><span>(</span><span>"</span><span>test_hdf5.sce</span><span>"</span><span>)</span><span>;</span>
<span>// the new file is created</span>
<span>a</span> <span>=</span> <span>h5open</span><span>(</span><span>PATH</span> <span>+</span> <span>"</span><span>/tests.h5</span><span>"</span><span>,</span> <span>"</span><span>w</span><span>"</span><span>)</span><span>;</span>
<span>// a basic group is created</span>
<span>group_name</span> <span>=</span> <span>"</span><span>MyGroup</span><span>"</span><span>;</span>
<span>h5group</span><span>(</span><span>a</span><span>,</span> <span>group_name</span><span>)</span><span>;</span>
<span>// sub-groups creation (using a loop)</span>
<span>for</span> <span>i</span> <span>=</span> <span>1</span> <span>:</span> <span>10</span>
<span>s</span> <span>=</span> <span>group_name</span> <span>+</span> <span>"</span><span>/sub_group</span><span>"</span> <span>+</span> <span>string</span><span>(</span><span>i</span><span>)</span><span>;</span>
<span>h5group</span><span>(</span><span>a</span><span>,</span><span>s</span><span>)</span>
<span>end</span>
<span>// specific groups </span><span>&</span><span> sub-groups</span>
<span>h5group</span><span>(</span><span>a</span><span>,</span> <span>"</span><span>FEM</span><span>"</span><span>)</span><span>;</span>
<span>h5group</span><span>(</span><span>a</span><span>,</span> <span>"</span><span>FEM/NODES</span><span>"</span><span>)</span><span>;</span>
<span>h5group</span><span>(</span><span>a</span><span>,</span> <span>"</span><span>FEM/ELEMENTS</span><span>"</span><span>)</span><span>;</span>
<span>// dataset creation using a data matrix</span>
<span>n</span> <span>=</span> <span>1E3</span><span>;</span>
<span>i</span> <span>=</span> <span>(</span><span>1</span><span>:</span><span>n</span><span>)</span><span>'</span><span>;</span>
<span>A</span> <span>=</span> <span>rand</span><span>(</span><span>n</span><span>,</span><span>3</span><span>)</span><span>;</span>
<span>Nodes</span> <span>=</span> <span>zeros</span><span>(</span><span>n</span><span>,</span><span>4</span><span>)</span><span>;</span>
<span>Nodes</span><span>(</span><span>:</span><span>,</span><span>1</span><span>)</span> <span>=</span> <span>i</span><span>;</span>
<span>Nodes</span><span>(</span><span>:</span><span>,</span><span>2</span><span>:</span><span>4</span><span>)</span> <span>=</span> <span>A</span><span>;</span>
<span>h5write</span><span>(</span><span>a</span><span>,</span><span>"</span><span>NODES</span><span>"</span><span>,</span><span>Nodes</span><span>'</span><span>)</span><span>;</span> <span>// dataset name is NODES here - do not confuse with the sub-group</span>
<span>h5write</span><span>(</span><span>a</span><span>,</span><span>"</span><span>FEM/NODES2</span><span>"</span><span>,</span><span>Nodes</span><span>'</span><span>)</span><span>;</span> <span>// dataset name is NODE2 in FEM group</span>
<span>h5write</span><span>(</span><span>a</span><span>,</span><span>"</span><span>FEM/NODES/new_nodes</span><span>"</span><span>,</span><span>Nodes</span><span>'</span><span>)</span><span>;</span> <span>// add of a new dataset names </span><span>"</span><span>new_nodes</span><span>"</span><span> in the subgroup NODES in FEM</span>
<span>// tests on the contect of the file (see H objects)</span>
<span>// it</span><span>'</span><span>s expected to find sub-groups and dataset into them</span>
<span>a</span><span>.</span><span>root</span> <span>// list of the groups / datasets and so on at the root</span>
<span>a</span><span>.</span><span>root</span><span>.</span><span>datasets</span> <span>// specifically list of the datasets</span>
<span>a</span><span>.</span><span>root</span><span>.</span><span>NODES</span> <span>// provides information</span><span>'</span><span>s of the </span><span>"</span><span>NODES</span><span>"</span><span> dataset</span>
</pre>
<pre><span>a</span><span>(</span><span>"</span><span>/FEM</span><span>"</span><span>)</span>
<span>a</span><span>(</span><span>"</span><span>/FEM</span><span>"</span><span>)</span><span>.</span><span>datasets</span>
<span>a</span><span>(</span><span>"</span><span>/FEM/NODES</span><span>"</span><span>)</span><span>.</span><span>datasets</span></pre>
<pre><span>//pause</span> <span>h5close</span><span>(</span><span>a</span><span>)</span><span>;</span></pre>
</body></html>