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

11 次查看(过去 30 天)
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 个评论
Rik
Rik 2021-7-15
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 2021-7-15
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.

请先登录,再进行评论。

采纳的回答

Cris LaPierre
Cris LaPierre 2021-7-15
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 个评论
Cris LaPierre
Cris LaPierre 2021-7-15
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)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 EEG/MEG/ECoG 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by