Creating an array out of a for loop.

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!

 Accepted Answer

A few things of note:
  • 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:
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

Thanks for your quick response. That was a stupid mistake.... Thanks for the other hints as well! After editing my code I get an array which has two empty columns in each row and the first column has all of the information from the loop...
'Z22Calibration Scan/' [] []
'Z23Calibration Scan2' [] []
'Z24Calibration Scan3' [] []
'Z25Calibration Scan6' [] []
How do I fix this so that that each set of information is in its own column? e.g...
'Z25' 'Calibration Scan' [Number]
Assuming you've called your cell array mycell:
mycell(j, :) = {fName, serDes, instNo};
Thank you very much!

Sign in to comment.

More Answers (0)

Categories

Find more on Design and Simulate SerDes Systems in Help Center and File Exchange

Asked:

on 4 Feb 2015

Commented:

on 4 Feb 2015

Community Treasure Hunt

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

Start Hunting!