- struct is a very common matlab function, don't use this as a variable name regardless of its content.
- cell arrays and structure are two different container, so don't name a cell array struct or structure or anything that hints at structure. It's just plain confusing to anyone reading your code.
- Learn to use the end keyword. These two lines:
Creating an array out of a for loop.
3 views (last 30 days)
Show older comments
Using a for loop to create an array of file information however when I run the code I get an array of the correct size but only one cell had data in it...
struct = cell(length(fileID), 3);
for j = 1:length(fileID)
fID = char(fileID(j));
if exist(fID, 'file');
info = dicominfo(fID);
serDes = info.SeriesDescription;
instNo = info.InstanceNumber;
sliceLoc = info.SliceLocation;
L = length(fID);
fName = fID(L-2:L);
struct{k} = [fName, serDes, instNo];
else
end
end
Struct
Any help would be great!
0 Comments
Accepted Answer
Guillaume
on 4 Feb 2015
A few things of note:
L = length(fID);
fName = fID(L-2:L);
are equivalent to:
fName = fID(end-2:end);
With that said, the cause of your problem is pretty simple. You're using k as an index to store values in your cell array, whereas your loop index is j. k never changes within your loop.
3 Comments
Guillaume
on 4 Feb 2015
Assuming you've called your cell array mycell:
mycell(j, :) = {fName, serDes, instNo};
More Answers (0)
See Also
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!