exporting strings out of structure into a vector

3 次查看(过去 30 天)
Hello MatlabCentral-community,
I have a structure(1*k). For k images there is one time data. Now, I want to generate a vector (for each image one time data). But unfortunately, I'm struggling with this task.
I tried it by:
[filename, pathname] = uigetfile('C:\Users\Pictures\Cam\*.jpg', ...
'Select Pictures for processing',...
'Multiselect','on');
nop = length(filename); % number of pictures
for k = 1:nop
n = num2str(k);
info_all = imfinfo(fullfile(pathname, filename{k}));
end
Img_info(k) = info_all;
% until here it works (getting one single string)
timeinfo_single = Img_info.FileModDate
timevector(k) = Img_info(k).FileModDate
I would be very happy, if somebody could put me on the right track,
greetings,
Gemma

采纳的回答

Guillaume
Guillaume 2015-4-30
As per Nobel's answer, you end you loop prematurely, the end should be in the last line.
it still won't work though as you can't put several strings (FileModDate) into a matrix, you have to use a cell array. Therefore, the end of your program should read:
timevector{k} = Img_Info(k).FileModDate;
end
Unless you meant to put a datenum in your timevector, in which case:
timevector(k) = datenum(Img_info(k).FileModDate);
end
By the way, I find your choice of variable name confusing. info_all is the information of a single image and Img_Info is the info of all images.
Finally, the way I would have written the same code would have been with just these three lines:
[filename, pathname] = uigetfile('C:\Users\Pictures\Cam\*.jpg', ...
'Select Pictures for processing',...
'Multiselect','on');
Img_Info = cellfun(@(fname) imfinfo(fullfile(pathname, fname)), filename);
timevector = datenum({Img_Info.FileModDate});

更多回答(2 个)

Nobel Mondal
Nobel Mondal 2015-4-30
Your Img_info variable is storing only the information of the last (nop-th) image, since it is outside the for loop.

Gemma
Gemma 2015-5-2
Thank you both very much! Now it works and is furthermore elegant!
I still tend to write rather cumbersome.

Community Treasure Hunt

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

Start Hunting!

Translated by