在fprintf输出中获取一个字符串以显示所有字符

时间:2011-11-26 23:27:11

标签: matlab printf

我正在尝试编写一个matlab代码来在文本文件中生成某种结果页面,但这里似乎存在一些基本的知识差距(我是matlab的新手)。所以令我困惑的是matlab如何处理字符串。我以为我可以创建一个充满字符串的向量,例如SampleNr = ['sample1','sample2'];然后取出该向量并将一个特定元素打印到文件中,例如fprintf(fid, '%s', SampleNr(i));但是当我运行它时,我只得到字符串中i的字符而不是整个字符串。正如我所说,这很可能是我误解了这个概念,并且在mathworks网站上的搜索并没有让我更清楚,所以我寻求stackexchange的集体智慧。 MWE将是:

 SampleNr = ['sample1','sample2'];
 sprintf('%s', SampleNr(2))

获取整个字符串的方法将不胜感激,但我也希望尽可能清除这种混淆,所以将来我可以自信地使用matlab中的字符串。提前谢谢。

1 个答案:

答案 0 :(得分:4)

在matlab中,字符串是一个字符数组,因此当您编写['sample1','sample2']时,它会连接2个字符串以生成一个字符串'sample1sample2'

要明确的是,当您编写字符串'sample'时,它的存储方式如下:['s','t','r','i','n','g']

要做你想做的事,你需要使用单元格:

SampleNr = {'sample1','sample2'}
sprintf('%s', SampleNr{2})