Input combination of string and number to a function which only accepts numbers?

1 view (last 30 days)
I am using EEGLAB on Matlab and would like to cut sections of the EEG between blocks. In EEGLAB the function is pop_select which accepts numbers separated by semicolon, e.g. [0 100; 120 150; 160 170], to select e.g. the period from 0 to 100 ms, etc.
I would like to create this input as an array, input_array, which is fed directly to the function, e.g. pop_select( EEG, 'notime', input_array), since I don't know beforehand which time periods I want to select.
However, the input must be separated by semicolon, which means that input_array contains strings and cannot be converted to a number array. Is there a way to overcome this?
  2 Comments
Rik
Rik on 15 Jul 2021
How exactly does that mean input_array contains strings?
I only see a 3x2 numeric array.
[0 100; 120 150; 160 170]
ans = 3×2
0 100 120 150 160 170
Martin Randau
Martin Randau on 15 Jul 2021
When constructing the array I need to insert the semicolon as a string. The function pop_select will not accept the input without semicolon separating the time intervals. So ";" is a string, so is "[" and "]" which I have to put at the end and start of the input, respectively.

Sign in to comment.

Accepted Answer

Cris LaPierre
Cris LaPierre on 15 Jul 2021
MATLAB uses semicolons to construct arrays. A semicolon represents the end of a row. Anything following it is placed on the next row.
You can learn more about this in Ch 4 of MATLAB Onramp.
  9 Comments
Cris LaPierre
Cris LaPierre on 15 Jul 2021
Incidentally, that produces exactly the same result as this code I shared earlier:
input_array = [EEG.xmin boundaryEnd_sec(2:end); boundaryStart_sec(2:end) EEG.xmax]';
EEG = pop_select( EEG, 'notime', input_array)

Sign in to comment.

More Answers (0)

Categories

Find more on EEG/MEG/ECoG in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!