- 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 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Guillaume
am 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 Kommentare
Guillaume
am 4 Feb. 2015
Assuming you've called your cell array mycell:
mycell(j, :) = {fName, serDes, instNo};
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!