sccn / EEG-BIDS

21 stars 17 forks source link

Error in function eeg_importeventsfiles() at line 69: undefined function 'cleanvarname' for input arguments of type 'char'. #148

Closed empetrucci closed 3 months ago

empetrucci commented 2 years ago

Hello and thank you for taking the time to help me out!

I modified your bids_export_example.m to suit my dataset and created a BIDS formatted directory (script included in zip file as bids_export_NFA.m). I have not yet added all of the detailed information about file quality, task/participant information, authors, etc., but when I use the "validate BIDS dataset" tool, I do not seem to get any errors besides having too few authors listed.

Unfortunately, when I try to import the BIDS dataset into EEGLab (File > Import data > using EEG functions and plugins > From BIDS folder structure), I get an error that the function 'cleanvarname' is undefined, as stated in the title. I cannot find this function in any of the EEGLab folders, nor can I find this function in the MATLAB directory - where is this function supposed to be defined? When I use the testing script (unittests.m) and sample data included under the testing folder, I get the same error.

I could not get the zip file to be small enough to upload here, so here is a Google Drive link.

Would appreciate any insight you could give to resolve this problem! Gratefully, Emily Petrucci

cmmrandau commented 1 year ago

I second this issue. Receiving the same on bids-matlab-tools 7. Removing cleanvarnames makes it run and it seems to work:

    for iField = 1:length(eventData(1,:))
        eventData{1,iField} = eventData{1,iField}; % cleanvarname(eventData{1,iField});
    end
empetrucci commented 1 year ago

Yeah the function file was/is missing, as soon as they sent me the file and I put it in the proper location (functions/miscfunc), everything worked as it should for me as well!

On Wed, Oct 5, 2022 at 5:46 AM Martin Randau @.***> wrote:

I second this issue. Receiving the same on bids-matlab-tools 7. Removing cleanvarnames makes it run and it seems to work:

for iField = 1:length(eventData(1,:))
    eventData{1,iField} = eventData{1,iField}; % cleanvarname(eventData{1,iField});
end

— Reply to this email directly, view it on GitHub https://github.com/sccn/bids-matlab-tools/issues/148#issuecomment-1268264483, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2K6O3EB2RIWRL63PUOSDG3WBVL6XANCNFSM57DMKPHA . You are receiving this because you authored the thread.Message ID: @.***>

jnvandermeer commented 1 year ago

For more info, the function cleanvarname you can find in the eeglab Github repository.

Just search that and you can copy/paste the function into your own eeglab installation. Or maybe re-download eeglab again (but that is a bit of a hassle).

I guess that it is a recent-ish addition to EEGlab! It may be good not to depend on it (yet), or alternatively to unabiguously state that LIMO (preprocessing tutorial) only works with the most recent version of eeglab?

dungscout96 commented 3 months ago

cleanvarname is now part of EEGLAB core functions. Closing this issue but please let us know if you still find the problem