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

51 ビュー (過去 30 日間)
Shiyue
Shiyue 2024 年 11 月 11 日 14:57
コメント済み: Harald 2024 年 11 月 12 日 10:43
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'));

採用された回答

Harald
Harald 2024 年 11 月 11 日 15:06
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 件のコメント
Shiyue
Shiyue 2024 年 11 月 12 日 9:04
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 2024 年 11 月 12 日 10:43
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

サインインしてコメントする。

その他の回答 (2 件)

dpb
dpb 2024 年 11 月 11 日 15:06
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.
  1 件のコメント
Harald
Harald 2024 年 11 月 11 日 15:18
Strictly speaking, mldivide (\) rather than ldivide (.\).

サインインしてコメントする。


Image Analyst
Image Analyst 2024 年 11 月 11 日 15:07
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');
  1 件のコメント
Shiyue
Shiyue 2024 年 11 月 11 日 15:39
Thanks for your answer; it worked!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeEntering Commands についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by