2013-09-20 64 views
1

我刚刚用上面的条件编写了一个代码,但它似乎不能正常工作,因为我在末尾错过了一个字母或在中间。阅读一个字符串,并从字符串上的每个单词的第一个首字母开始创建首字母缩写词

任何人都可以查看我的代码告诉我我做错了什么。顺便说一下,我已经检查了这个类似问题的其他线程,但我不允许使用regexprint函数。

phrase=('my room is cold') 
allSpaces=findstr(' ',phrase); 
k=length(allSpaces) 
acr=phrase(1:allSpaces(1):allSpaces(k)-1) 

输出:

acr= mrms 
+0

你的输出不应该是'mric'? –

+0

是的,但我的代码的最后一行是错误的。 –

回答

1

更改最后一行

acr = phrase([1 allSpaces+1]) 

这样,你得到的第一个字母,然后将每个空间后的第一次。

+0

谢谢。但是,请你解释一下这一行发生了什么,我知道1意味着从第一个位置开始,然后在空白处增加1个位置。怎么没有分号,但是1和所有空格之间有一个空格? –

+0

@KururugiSuzaku逗号或空格是相同的:它们水平连接。在这种情况下,如果'allSpaces'是一个1x3向量,则表达式[[allSpaces + 1]'给出一个4x1向量。如果'allSpaces'是一个_column_向量(例如大小为3x1),则必须使用分号连接_vertically_:'[1; allSpaces + 1]',这会给出一个4x1向量。 –

+0

谢谢!为解释我想我现在得到它。 :D –

相关问题