我有一个字符串矩阵,如下所示:
readFiles = [
"11221", "09";
"11222", "13";
"12821", "06";
"13521", "02";
"13522", "13";
"13711", "05";
"13921", "01";
"14521", ".001";
"15712", ".003"
];
这些文件用于自动访问某些文件夹和文件。然后我要做的是如下( ii
是一些整数):
FileName = strcat('../../Datasets/hc-1/d',readFiles(ii,1),'/d',...
readFiles(ii,1),readFiles(ii,2),'.dat');
data(ii,:) = LoadBinary(FileName, 6);
然后使用双引号生成字符串FileName
(我不确定原因)。因此,它的价值是:
FileName =
"../../Datasets/hc-1/d13921/d1392101.dat"
函数LoadBinary()
在尝试执行以下操作时返回一个错误:
lastdot = strfind(FileName,'.');
FileBase = FileName(1:lastdot(end)-1); % This line
但是,如果我使用单引号手动创建字符串FileName
,则该函数可以正常工作。
简单地说,如果我尝试索引用上面的行创建的字符串(FileName(1:lastdot(end)-1)
) (导致FileName = "../../Datasets/hc-1/d13921/d1392101.dat"
),MATLAB将返回一个错误。如果我用单引号(FileName = '../../Datasets/hc-1/d13921/d1392101.dat'
)手动创建它,则该函数工作正常。
这一切为什么要发生?是否有方法修复它(即将双引号字符串转换为单引号字符串)?
发布于 2018-04-02 21:43:33
双引号是字符串数组,而单引号是Char数组。可以使用函数char
将字符串数组转换为char数组。所以你会写:
CharFileName = char(FileName)
它应该能解决你的问题。
https://stackoverflow.com/questions/49619191
复制相似问题