我有一个字符串矩阵,如下所示:
string
这些用于以自动方式访问某些文件夹和文件。那么我想要做的是以下(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)
),MATLAB将返回错误。如果我使用单引号(FileName = "../../Datasets/hc-1/d13921/d1392101.dat"
)手动创建它,则该功能正常工作。
为什么会这样?有没有办法解决它(即将双引号字符串转换为单引号字符串?)
答案 0 :(得分:4)
双引号是String数组,而Single是Char数组。您可以使用函数char
将字符串数组转换为char数组。
所以你要写:
CharFileName = char(FileName)
它应该解决你的问题。