2011-11-26 33 views
1

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

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

的方法来获取整个字符串,将不胜感激,但我也想有这样的困惑,如果可能的清理,所以在未来我可以在MATLAB字符串自信地工作。提前致谢。

回答

4

在matlab中,一个字符串是一个字符数组,因此当您编写['sample1','sample2']时,它会连接两个字符串来创建一个字符串'sample1sample2'

需要明确的是,当你写一个字符串'sample',它存储这样的:['s','t','r','i','n','g']

做你想做什么,你需要使用电池:

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

感谢,这说明很多: ) –