2017-06-27 165 views
0

矢量化基於Matlab /倍頻代碼我如何向量化下面基於Matlab /倍頻代碼 -字符串操作

sentence='The quick brown fox'; 
l=findstr(sentence,' ');% One blank space 
w=l(1); 
first=sentence(1:w-1); 
last=sentence(w:end); 

我可以過去的兩個語句合併爲一個語句。有沒有什麼辦法可以將最後四條語句轉換成一條語句?

回答

4

strtok會做你以後。

​​

PS:鑑於你的問題的措辭,我覺得有必要指出的是,「單行」和「矢量化」是兩個完全不相干的概念。

+0

能否詳細說明一下? – Misha

+0

評論。我認爲矢量化是使用矢量操作將一段代碼轉換爲一行。你能告訴我我錯了嗎? – Misha

+2

減少代碼行與任何東西都沒有關係(除了可讀性,無論是正面還是負面)。矢量化指的是一些替代傳統的迭代技術(例如「for循環」)的技術,這些技術一次對一個元素進行操作,其中基於矩陣的操作被最優化地設計爲與矩陣一起工作;這種操作速度更快的原因通常是因爲它們被重定向到引擎蓋下的最佳實現(例如,用C++編碼),而「for循環」大致等同於逐個執行大量指令。 –

0

您可以考慮使用strsplit在句子中提取所有的話:

sentence='The quick brown fox'; 
words = strsplit(sentence, ' '); 
first = words{1}; 
last = words{end};