2013-09-20 65 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 –

相關問題