I encountered an 'invalid use of operator' error message.

2 Ansichten (letzte 30 Tage)
Shiyue
Shiyue am 11 Nov. 2024
Kommentiert: Harald am 12 Nov. 2024
I encountered an 'invalid use of operator' error message when excuted this below.
load(fullfile(E:\charite\Data\EGCG_Round3\MRE\MouseAtlasReg\ProcessedShort\20241024_sl_MRE_Day18_Cage1_3505_MRE\mreCubes1,'ventricles.mat'));

Akzeptierte Antwort

Harald
Harald am 11 Nov. 2024
Hi,
you need to place single or double quotes around the path. With single quotes:
load(fullfile('E:\charite\Data\EGCG_Round3\MRE\MouseAtlasReg\ProcessedShort\20241024_sl_MRE_Day18_Cage1_3505_MRE\mreCubes1','ventricles.mat'));
If you are just getting started with MATLAB, you may find the MATLAB Onramp helpful.
Best wishes,
Harald
  6 Kommentare
Shiyue
Shiyue am 12 Nov. 2024
Here is the full text
pathDefault = 'E:\charite\Data\EGCG_Round3\MRE\MouseAtlasReg\ProcessedShort\20241024_170015_20241024_sl_MRE_Day18_Cage1_3505_MRE_1_1\mreCubes1';
listing = dir(pathDefault);
listing(1:2) = [];
for iFolder = 1 : length(listing)
currentPath = fullfile(listing(iFolder).folder, listing(iFolder).name);
path = fullfile(currentPath,'rois'); %change back to rois
disp(path);
if strcmp(listing(iFolder).name,'results')%doesnt run the loop for this folder
continue;
end
load(fullfile('E:\mreCubes1', 'ventricles.mat'));
ventricles_dilated1pix=imdilate(ventricles,strel('disk', 1));
save(fullfile ('E:\mreCubes1', 'ventricles_dilated1pix'),'ventricles_dilated1pix');
load(fullfile('E:\mreCubes1','ventricles.mat'));
load(fullfile('E:\mreCubes1\rois','WholeBrain_115cut.mat'));
WholeBrain_115cut_noVentricle = and(WholeBrain_115cut.mat, ~ventricles.mat);
save(fullfile ('E:\mreCubes1', 'WholeBrain_115cut_noVentricle'),'WholeBrain_115cut_noVentricle')
Harald
Harald am 12 Nov. 2024
Hi,
you should not work with the .mat files in that line, but with the variables that you have imported from them:
If the variables are named the same as the .mat files, this would be
WholeBrain_115cut_noVentricle = and(WholeBrain_115cut, ~ventricles);
like you have shown in an earlier version.
In general, it will be
varC = and(varA, ~varB);
Best wishes,
Harald

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

dpb
dpb am 11 Nov. 2024
load(fullfile('E:\charite\Data\EGCG_Round3\MRE\MouseAtlasReg\ProcessedShort\20241024_sl_MRE_Day18_Cage1_3505_MRE\mreCubes1','ventricles.mat'));
You forgot the tic marks around the folder string; MATLAB tried to evaluate the \ as the ldivide, .\ operator.

Image Analyst
Image Analyst am 11 Nov. 2024
You forgot quotes. Corrected:
load(fullfile('E:\charite\Data\EGCG_Round3\MRE\MouseAtlasReg\ProcessedShort\20241024_sl_MRE_Day18_Cage1_3505_MRE\mreCubes1','ventricles.mat'));
or simply don't use fullfile(), unless you need to change the folder or basefilename and are using variables for that:
load('E:\charite\Data\EGCG_Round3\MRE\MouseAtlasReg\ProcessedShort\20241024_sl_MRE_Day18_Cage1_3505_MRE\mreCubes1\ventricles.mat');

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by