Skip to content

Commit 7925f6c

Browse files
committed
[c++/m] Add DataArray dataType method
Not sure if this is useful for matlab...
1 parent 756499c commit 7925f6c

File tree

5 files changed

+28
-0
lines changed

5 files changed

+28
-0
lines changed

+nix/DataArray.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,9 @@ function write_all(obj, data)
126126
end;
127127
end;
128128

129+
function s = datatype(obj)
130+
s = nix_mx('DataArray::dataType', obj.nix_handle);
131+
end
132+
129133
end;
130134
end

nix_mx.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ void mexFunction(int nlhs,
233233
methods->add("DataArray::sourceCount", nixdataarray::sourceCount);
234234
methods->add("DataArray::dimensionCount", nixdataarray::dimensionCount);
235235
methods->add("DataArray::setPolynomCoefficients", nixdataarray::polynomCoefficients);
236+
methods->add("DataArray::dataType", nixdataarray::dataType);
236237

237238
classdef<nix::Source>("Source", methods)
238239
.desc(&nixsource::describe)

src/nixdataarray.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,9 @@ namespace nixdataarray {
125125
da.polynomCoefficients(pc);
126126
}
127127

128+
void dataType(const extractor &input, infusor &output) {
129+
nix::DataArray da = input.entity<nix::DataArray>(1);
130+
output.set(0, string_nix2mex(da.dataType()));
131+
}
132+
128133
} // namespace nixdataarray

src/nixdataarray.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ namespace nixdataarray {
3737

3838
void polynomCoefficients(const extractor &input, infusor &output);
3939

40+
void dataType(const extractor &input, infusor &output);
41+
4042
} // namespace nixdataarray
4143

4244
#endif

tests/TestDataArray.m

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
funcs{end+1} = @test_source_count;
2929
funcs{end+1} = @test_dimensions;
3030
funcs{end+1} = @test_dimension_count;
31+
funcs{end+1} = @test_datatype;
3132
end
3233

3334
function [] = test_attrs( varargin )
@@ -514,3 +515,18 @@
514515
f = nix.File(testFile, nix.FileMode.ReadOnly);
515516
assert(f.blocks{1}.dataArrays{1}.dimension_count() == 1);
516517
end
518+
519+
%% Test: Datatype
520+
function [] = test_datatype( varargin )
521+
fileName = fullfile(pwd, 'tests', 'testRW.h5');
522+
typeDA = 'nix.DataArray';
523+
f = nix.File(fileName, nix.FileMode.Overwrite);
524+
b = f.create_block('testBlock', 'nixblock');
525+
526+
da = b.create_data_array_from_data('testDataArray1', typeDA, [1 2 3]);
527+
assert(strcmp(da.datatype, 'double'));
528+
529+
da = b.create_data_array('testDataArray2', typeDA, nix.DataType.Bool, 5);
530+
da.write_all(logical([1 0 1 1 1]));
531+
assert(strcmp(da.datatype, 'logical'));
532+
end

0 commit comments

Comments
 (0)