2015-08-24 106 views
0

如何在matlab中使用函數做到這一點?如何處理matlab中的字符串?

hidden ('great summer time') %returns 'gst'. 
hidden ('no on no east') %returns 'none'. 
hidden ('this is an example') %returns 'tiae'. 
+2

http://stackoverflow.com/questions/7540139/how-創建一個函數,返回一個簡稱在MATLAB中,甚至是http://stackoverflow.com/questions/3038768/how-can-i-create-an-acronym-from-a-string -in-matlab –

+1

@KassymDorsel - 非常好的發現。我標記爲重複。 – rayryeng

回答

2

使用正則表達式,(regexp命令)來提取每個單詞的第一個字母。

function out = hidden(str) 

    out = str(regexp([' ' str],'(?<=\s+)\S','start')-1); 

end 

看到,因爲這只是一個襯墊與一個輸出,你可以把它放在你的腳本匿名函數內聯。 。 。

@(str)str(regexp([' ',str],'(?<=\s+)\S','start')-1) 

>> hidden('things to do') 

ans = 

ttd 
+1

我認爲他意味着收集每個單詞的第一個字母,可能是自動的,而不是輸入所有內容,然後讓if語句返回您的確切書面代碼。 – Adriaan

+0

DoH。好。我得到了一個壞的問題:P – learnvst

+0

現在編輯我想我已經找出了問題的含義 – learnvst

1

您可以使用isspace找到所有的空間和選擇的字符串之後的空間的第一個字符之間的所有字符:

function [s] = hidden(str) 

s = str([1, find(isspace(str))+1]); 

end