我正在进行一些顺序图像处理,并且我试图将每个图像中的数据提取到csv文件中以便在Excel中使用。
我试图只使用每个图像变量的矢量和文件名来实现这一点。
但是,我在处理循环中使用文件名制作矢量时遇到问题。这是我的代码。
ImageFolder = C:\Users\X\Documents\MATLAB\Research\Temp
filePattern = fullfile(ImageFolder, "*.tif');
tifFiles = dir(filePattern);
for k = 1:length(tifFiles) % Open sequence loop
baseFileName = tifFiles(k).name;
fullFileName = fullfile(ImageFolder, baseFileName);
fprintf(1, 'Now reading %s\n', baseFileName);
close all % Close images from previous cycle
% skip some lines
Count(k) = size(Areas,1) <- Works
Porosity(k) = (sum(Areas) / (size(Istretch,1)*size(Istretch,2)))*100
Size(k) = sum(Areas)/Number
ImageName(k) = baseFileName <- This is wrong
在您完成序列时,只打印出每个文件名的第1个,第2个,第3个等字母。我假设这里有一些简单的解决方案,但我没想到它。任何人都可以为我清楚这一点吗?
谢谢!
答案 0 :(得分:2)
在Matlab中,文件名或任何其他“字符串”是字符的向量而不是标量,因此您无法将其分配给向量的单个元素。请改为使用cell:ImageName{k} = baseFileName