Conversion from struct type to array

Illustration
pra_shant_shah - 2021-12-24T10:58:31+00:00
Question: Conversion from struct type to array

Hey I have a .mat file which contains ECG data.Where aa contains struct type [15x10000 double]. How can I convert aa into [somethingx1 double] so that I can calculate length of  ECG signal ?   aa=load('ff.mat'); aa  

Expert Answer

Profile picture of John Williams John Williams answered . 2025-11-20

So I saved your uploaded .mat file, and load-ed its contents into my workspace like this:

 

load('ff.mat')
It turns out that this .mat file contains no structure, only a single variable named val, which is of class double, and has size 15x10000. You request "I want to store this in array", but it already is an array, and a very convenient double array at that. You want a numeric array of data, and you already have one single perfect array of numeric data within that .mat file.
 
Your statement "I can not understand what value contains in row or column such like time or voltage" is possibly quite true, but do suppose that anyone here on MATLAB Answers can magically know how your data is arranged? To know exactly what the data contains you will have to ask the person who created it, or read their documentation, or perhaps engage in a little bit of reverse engineering of the function that saved that data.
 
For a start it seems likely that the second dimension is time, although personally I could not find any strictly monotonically increasing values in any one row:
 
>> all(diff(val)>0,2)
  ans =
     0
     0
     0
     0
     0
     0
     0
     0
     0
     0
     0
     0
     0
     0

So it seems that some kind of time variable is not included in this data.

 

 

 

s = struct(field,value) creates a structure array with the specified field and value. The value input argument can be any data type, such as a numeric, logical, character, or cell array.

  • If value is not a cell array, or if value is a scalar cell array, then s is a scalar structure. For instance, s = struct('a',[1 2 3]) creates a 1-by-1 structure, where s.a = [1 2 3].

  • If value is a nonscalar cell array, then s is a structure array with the same dimensions as value. Each element of s contains the corresponding element of value. For example, s = struct('x',{'a','b'}) returns s(1).x = 'a' and s(2).x = 'b'.

  • If value is an empty cell array {}, then s is an empty (0-by-0) structure.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!