add string to matrix/ array in loop

I wrote this function to get the full paths of all files in a specific folder:
function [ paths ] = getPaths(folder)
%GETPATHS Get full path of files containing a given folder
filelist = dir(folder);
filenames = {filelist.name};
paths = zeros(numel(filenames),1);
for k=3:numel(filenames)
[pathstr, name, ext] = fileparts(filenames{k});
current_path = [folder pathstr name ext];
paths(k) = current_path;
end
end
I get the error message:
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
Error in ==> getPaths at 10
paths(k) = current_path;
How can I add string to matrix/ array in loop?

 Réponse acceptée

Oleg Komarov
Oleg Komarov le 15 Avr 2011

1 vote

fldr = 'C:\Users\Oleg\Desktop\';
s = dir(fldr);
strcat(fldr, {s(~[s.isdir]).name})

1 commentaire

D.
D. le 18 Avr 2011
this works with a '\' between path and file:
fldr = 'C:\Users\Oleg\Desktop\';
s = dir(fldr);
strcat(fldr, '\', {s(~[s.isdir]).name})
thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 15 Avr 2011

1 vote

can so
...
paths = cell(numel(filenames),1);
for k=3:numel(filenames)
[pathstr, name, ext] = fileparts(filenames{k});
paths(k) = {folder pathstr name ext};
end
...

Catégories

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by