MATLAB Answers

Matlab on AWS doesn't seem to recognize (@)Class-folders

조회 수: 3(최근 30일)
Sander Groeneweg
Sander Groeneweg 2018년 10월 17일
편집: Sander Groeneweg 2018년 10월 18일
Hi,
I recently started working with the Parallel Computing Toolbox and now I want to extend the performance by using the AmazonWebServices. For simple scripts this works fine already.
Now I want to segment some neuroimaging data using the SPM12-toolbox. Parallel-Computing on my local computer doesn't cause any problems, but when use AWS, I get the following Error:
"An UndefinedFunction error was thrown on the workers for 'list'. This might be because the file containing 'list' is not accessible on the workers. Use addAttachedFiles(pool, files) to specify the required files to be attached. For more information see the documentation for 'parallel.Pool/addAttachedFiles'.
... Caused by: Undefined function 'list' for input arguments of type 'cell'."
The function "list" is located in a class folder "@foldername". When I copy "list" into a path folder, "list" is recognized and I get an error for the function "match", which is located in another class folder. However, when I put every function into a single path folder SPM12 crashes (they must have had a reason to do this). So that doesn't seem to be a solution.
addAttachedFiles(gcp,{'C:\...\@foldername\list.m'}) doesn't add "list" to AWS either.
Does anybody know a workaround for this problem?
Best regards, Sander

답변(1개)

Philip Borghesani
Philip Borghesani 2018년 10월 17일
You must add the complete @foldername folder. The clue here is Caused by: Undefined function 'list' for input arguments of type 'cell'." Your class was not correctly copied to the worker machines (most likely because the constructor was not found) and was converted to a structure.
  댓글 수: 1
Sander Groeneweg
Sander Groeneweg 2018년 10월 18일
Unfortunately I still get the same error message:
"Error using cfg_repeat/list (line 112) An UndefinedFunction error was thrown on the workers for 'list'. This might be because the file containing 'list' is not accessible on the workers. Use addAttachedFiles(pool, files) to specify the required files to be attached. For more information see the documentation for 'parallel.Pool/addAttachedFiles'.
Caused by: Undefined function 'list' for input arguments of type 'cell'."
As you recommended I added the @foldernames via
addAttachedFiles(gcp,{'C:\...\@foldername'})
resulting in gcp:
Attached files for parallel pool:
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_branch
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_choice
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_const
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_dep
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_entry
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_exbranch
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_files
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_intree
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_inv_out
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_item
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_leaf
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_mchoice
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_menu
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_repeat

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by