- 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 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Guillaume
il 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 Commenti
Guillaume
il 4 Feb 2015
Assuming you've called your cell array mycell:
mycell(j, :) = {fName, serDes, instNo};
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrices and Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!