Я хочу проанализировать текстовый файл с моим m-файлом.В текстовом файле аннотации изображений DICOM хранятся в той же папке.Однако я сталкиваюсь с ошибкой fgets и не могу двигаться дальше.
Поскольку мой друг мог запустить этот m-файл на своем ноутбуке, я не уверен, связана ли моя проблема с онлайновым Matlab, а не с версией для ПК, которую я использую.Заранее благодарим за любые советы!
Содержимое моего m-файла:
function ROIs = loadROIfiles(ROIfileName)
% Loads all the ROIs stored in the *.txt file from the specified location.
% The ROIs are returned as a structure array as:
% ROIs(i).spacing_x (double)
% ROIs(i).spacing_y (double)
% ROIs(i).label (string)
% ROIs(i).slice_number (double)
% ROIs(i).xValues (vector of double)
% ROIs(i).yValues (vector of double)
%
% USAGE :
% ROIs = loadROIfiles(ROIfileName)
fid = fopen(ROIfileName, 'r');
i=1;
while 1
tline = fgetl(fid);
if ~ischar(tline), break, end
if (isempty(findstr(tline, 'SpacingX:')) == false)
spacing_x = str2double(strrep(tline, 'SpacingX: ', ''));
elseif (isempty(findstr(tline, 'SpacingY:')) == false)
spacing_y = str2double(strrep(tline, 'SpacingY: ', ''));
elseif (isempty(findstr(tline, 'label:')) == false)
label = strrep(tline, 'label: ', '');
elseif (isempty(findstr(tline, 'slice_number:')) == false)
slice_number = str2double(strrep(tline, 'slice_number: ', ''));
elseif (isempty(findstr(tline, 'nb_points_on_contour:')) == false)
nb_points_on_contour = str2double(strrep(tline, 'nb_points_on_contour: ', ''));
xValues = [];
yValues = [];
for j=1:nb_points_on_contour
tline = fgetl(fid);
[xValStr, yValStr] = strtok(tline, ' ');
xVal = str2double(xValStr);
yVal = str2double(yValStr);
xValues = [xValues xVal];
yValues = [yValues yVal];
end
% store the ROI into the struct array "ROIs"
ROIs(i).spacing_x = spacing_x;
ROIs(i).spacing_y = spacing_y;
ROIs(i).label = label;
ROIs(i).slice_number = slice_number;
ROIs(i).xValues = xValues;
ROIs(i).yValues = yValues;
i=i+1;
end
end
fclose(fid);
Код в окне команд:
ROIs = loadROIfiles('CT-INSPIRIUM-6817.txt')
Ошибки:
Error using fgets
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in fgetl (line 32)
[tline,lt] = fgets(fid);
Error in loadROIfiles (line 38)
tline = fgetl(fid);