用于字符串运算的矢量化Matlab/倍频程代码

用于字符串运算的矢量化Matlab/倍频程代码,matlab,octave,Matlab,Octave,如何将以下Matlab/倍频程代码矢量化- sentence='The quick brown fox'; l=findstr(sentence,' ');% One blank space w=l(1); first=sentence(1:w-1); last=sentence(w:end); 我可以将最后两个语句组合成一个语句。有没有什么办法可以把最后四个语句转换成一个语句? 你可以考虑使用 StSPLAG/来提取句子中的所有单词: sentence='The quick brown fo

如何将以下Matlab/倍频程代码矢量化-

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

我可以将最后两个语句组合成一个语句。有没有什么办法可以把最后四个语句转换成一个语句?

你可以考虑使用<代码> StSPLAG/<代码>来提取句子中的所有单词:

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

你可以考虑使用<代码> StReSts<代码>来提取句子中的所有单词:

sentence='The quick brown fox';
words = strsplit(sentence, ' ');
first = words{1};
last = words{end};
我会做你想做的事

>> [first, last] = strtok (sentence, ' ')
first = The
last =  quick brown fox

PS:考虑到你问题中的措辞,我不得不指出,“一行程序”和“矢量化”是两个完全不相关的概念。

会满足你的要求

>> [first, last] = strtok (sentence, ' ')
first = The
last =  quick brown fox


PS:鉴于你问题中的措辞,我不得不指出,“一行程序”和“矢量化”是两个完全不相关的概念。

你能详细说明一下吗?评论。我假设向量化是使用向量运算将一块代码转换成一行。你能告诉我我是怎么错的吗?减少代码行与任何事情都无关(除了可读性,不管是正面的还是负面的)。矢量化指的是一系列技术,这些技术用“基于矩阵”的操作取代了一次操作一个元素的传统迭代技术(如“for循环”),这些操作经过优化设计,可用于处理矩阵;这类操作速度更快的原因通常是因为它们被重定向到引擎盖下的最佳实现(例如,用c++编码),而“for循环”大致相当于一个接一个地运行大量指令。阅读如果你想了解更多,你能详细说明吗?评论。我假设向量化是使用向量运算将一块代码转换成一行。你能告诉我我是怎么错的吗?减少代码行与任何事情都无关(除了可读性,不管是正面的还是负面的)。矢量化指的是一系列技术,这些技术用“基于矩阵”的操作取代了一次操作一个元素的传统迭代技术(如“for循环”),这些操作经过优化设计,可用于处理矩阵;这类操作速度快得多的原因通常是因为它们被重定向到引擎盖下的最佳实现(例如,用c++编码),而“for循环”大致相当于一个接一个地运行大量指令。如果您想了解更多信息,请阅读