Как сохранить поля из структуры данных в поле имени файла в Matlab?
В Matlab у меня есть структурный массив, который выглядит следующим образом.
В основном у нас есть несколько наборов данных, и у каждого есть имя. Для каждого набора данных есть определенное количество точек данных, которые являются данными, которые были записаны от электрической активности в мозге, от представления стимула в течение определенного количества секунд.
Для каждого набора данных была записана запись за 2 секунды до представления стимула и запись через 3 секунды после представления стимула. Так что я на самом деле хочу разделить мои данные на 2, с точками данных, связанными с "pre", и точками данных, связанными с "post". Это довольно просто сделать с помощью цикла for, и я сделал это, и теперь у меня есть 2 дополнительных поля, связанных с каждым набором данных.
FYI
ALLEEG(data_set).data ----- > this field has the original unchopped data
ALLEEG(data_set).data_pre ----- > this field has the "pre" data
ALLEEG(data_set).data_post ---- > this field has the "post" data
ALLEEG(data_set).filename ---- > this field has the filename
Теперь я хочу взять исходное имя файла каждого набора данных, например, если один из них был вызван
1234L01.set
и имел поле с надписью data
содержащий полные записи данных (не нарезанные на "pre" и "post"), я хочу сохранить поля "pre" и "post", которые я создал, чтобы у меня было 2 новых набора данных
1234L01_pre.set and 1234L01_post.set
и data
Поле в каждом из них - "pre" и "post" соответственно, и любые другие поля, связанные с набором данных, сохраняются.
Я немного запутался в том, как это сделать, потому что я не понимаю, как взять исходное имя файла и изменить его, и у меня много наборов данных, поэтому я не хочу делать все вручную.
Может ли кто-нибудь помочь с этим, пожалуйста?
1 ответ
Что-то вроде:
[p,f,e] = fileparts ( ALLEEG(data_set).filename );
newFilename = sprintf ( '%s_pre.%s', f, e )
pre = ALLEEG(data_set).pre;
save ( newFilename, 'pre' );
newFilename = sprintf ( '%s_post.%s', f, e )
post = ALLEEG(data_set).post;
save ( newFilename, 'post' );