- 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 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Guillaume
2015-2-4
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 个评论
Guillaume
2015-2-4
Assuming you've called your cell array mycell:
mycell(j, :) = {fName, serDes, instNo};
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!