gpt4 book ai didi

MATLAB 中的字符串索引 : single vs. 双引号

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:30 25 4
gpt4 key购买 nike

我有一个字符串矩阵,如下所示:

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') 手动创建它,该函数就可以正常工作。

为什么会这样?有没有办法修复它(即将双引号字符串转换为单引号字符串)?

最佳答案

双引号是String数组,单引号是Char数组。您可以使用函数 char 将字符串数组转换为字符数组。所以你会写:

CharFileName = char(FileName)

它应该可以解决您的问题。

关于MATLAB 中的字符串索引 : single vs. 双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49619191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com