add string to matrix/ array in loop

4 views (last 30 days)
D.
D. on 15 Apr 2011
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?

Accepted Answer

Oleg Komarov
Oleg Komarov on 15 Apr 2011
fldr = 'C:\Users\Oleg\Desktop\';
s = dir(fldr);
strcat(fldr, {s(~[s.isdir]).name})
  1 Comment
D.
D. on 18 Apr 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!

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 15 Apr 2011
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
...

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!