我正在尝试编写一个matlab代码来在文本文件中生成某种结果页面,但这里似乎存在一些基本的知识差距(我是matlab的新手)。所以令我困惑的是matlab如何处理字符串。我以为我可以创建一个充满字符串的向量,例如SampleNr = ['sample1','sample2'];
然后取出该向量并将一个特定元素打印到文件中,例如fprintf(fid, '%s', SampleNr(i));
但是当我运行它时,我只得到字符串中i
的字符而不是整个字符串。正如我所说,这很可能是我误解了这个概念,并且在mathworks网站上的搜索并没有让我更清楚,所以我寻求stackexchange的集体智慧。 MWE将是:
SampleNr = ['sample1','sample2'];
sprintf('%s', SampleNr(2))
获取整个字符串的方法将不胜感激,但我也希望尽可能清除这种混淆,所以将来我可以自信地使用matlab中的字符串。提前谢谢。
答案 0 :(得分:4)
在matlab中,字符串是一个字符数组,因此当您编写['sample1','sample2']
时,它会连接2个字符串以生成一个字符串'sample1sample2'
。
要明确的是,当您编写字符串'sample'
时,它的存储方式如下:['s','t','r','i','n','g']
要做你想做的事,你需要使用单元格:
SampleNr = {'sample1','sample2'}
sprintf('%s', SampleNr{2})