Import or Export a Sequence of Files

1 回表示 (過去 30 日間)
Luca Fenech
Luca Fenech 2021 年 2 月 27 日
コメント済み: Luca Fenech 2021 年 3 月 18 日
I have been trying to export photos on MATLAB. With a.bmp, b.bmp and c.bmp works perfectly, but wrting *.bmp gives me an error. Could you help me out please.
Thanks
clc; clear all;
% paths = fullfile('c:\','users','fenec','Desktop','Cam_1',{'a.bmp'; 'b.bmp'; 'c.bmp'});
paths = dir(fullfile('c:\','users','fenec','Desktop','Cam_1','*.bmp'));
for R = 1:length(paths)
temp = char(paths(R));
I = imread(temp);
figure;
imshow(I, []);
end
  2 件のコメント
Stephen23
Stephen23 2021 年 2 月 27 日
I don't see how this approach would ever work without error:
S = dir();
char(S(1))
Error using char
Conversion to char from struct is not possible.
Most likely you would be much better off just using the standard approach of using indexing and fieldname to access the structure content (just as they were designed for):
Luca Fenech
Luca Fenech 2021 年 2 月 27 日
Thats why I got confused. Since when uncommenting the 2nd line:
clc; clear all;
paths = fullfile('c:\','users','fenec','Desktop','Cam_1',{'a.bmp'; 'b.bmp'; 'c.bmp'});
% paths = dir(fullfile('c:\','users','fenec','Desktop','Cam_1','*.bmp'));
for R = 1:length(paths)
temp = char(paths(R));
I = imread(temp);
figure;
imshow(I, []);
end
Like the above code works perfectly.
The problem when came when I wanted to be more generic, by having
'*.bmp'
Thanks for link provided.
Moreover, the answer and explanation to this query can be found here:
https://www.mathworks.com/matlabcentral/answers/757974-import-or-export-a-sequence-of-files#answer_635024

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

採用された回答

Cris LaPierre
Cris LaPierre 2021 年 2 月 27 日
Perhaps the issue is that paths is a structure containing several fields and not just the path. Look at the dir documentation page for more.
The fields are
  • name
  • folder
  • date
  • bytes
  • isdir
  • datenum
See explanations here.
Perhaps modify your code to be
for R = 1:length(paths)
temp = fullfile(paths(R).folder,paths(R).name);
I = imread(temp);
figure;
imshow(I, []);
end
  4 件のコメント
Stephen23
Stephen23 2021 年 3 月 18 日
編集済み: Stephen23 2021 年 3 月 18 日
@Luca Fenech: download, unzip, and use NATSORTFILES (following its documentation of course):
For example:
P = fullfile('C:\','users','fenec','Desktop','Cam 1');
S = dir(fullfile(P,'*.bmp'));
C = natsortfiles({S.name}); % sort filenames alphanumerically.
for k = 1:numel(C)
F = fullfile(P,C{k});
I = imread(F);
figure;
imshow(I,[]);
end
You can also sort the structure S by using the second output from NATOSRTFILES, which is the sort index.
Luca Fenech
Luca Fenech 2021 年 3 月 18 日
@Stephen Cobeldick... this worked perfectly.
I really appreciate for your help. Thanks a lot.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFile Operations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by