Struct contents reference from a non-struct array object.

1 次查看(过去 30 天)
folder = 'C:\Echo Images\Stelios\FDB';
file_temp = sprintf('%s\\*.bmp', folder);
filearray = dir(file_temp);
s = max(size(filearray));
for i=1: 1: s
[p, f] = fileparts(file_temp(i).name);
imgname=strcat(folder,'\\',filearray(i).name);
I = imread(imgname);
dicomwrite(I, [imgname '.dcm']);
end
I get the error at [p, f] = fileparts(file_temp(i).name); line. PLease help!!

采纳的回答

Jan
Jan 2018-4-23
You want the output of dir, not the one of sprintf:
file_temp = sprintf('%s\\*.bmp', folder);
filearray = dir(file_temp);
for i = 1:s
[p, f] = fileparts(filearray(i).name); % file_temp => filearray
By the way:
  • Please format your code in the forum using the "{} Code" button. It is a good idea to post readable code.
  • An easier method to create the file pattern:
% file_temp = sprintf('%s\\*.bmp', folder)
file_temp = fullfile(folder, '*.bmp');
  • The field .name contains the file name only, so there is no need to split it by fileparts.
p = filearray(i).folder;
f = filearray(i).name;
But you not need p or f at all.
  • Use fullfile instead of strcat:
imgname = fullfile(folder, filearray(i).name)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by