首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用单数替换向量中的整数序列

用单数替换向量中的整数序列
EN

Stack Overflow用户
提问于 2015-04-01 14:47:41
回答 2查看 88关注 0票数 3

A是整数的向量,其中我想用一个精确的数字替换一个数字序列。

示例:

代码语言:javascript
运行
复制
A = [ 8 7 1 2 3 4 5 1 2 3 4 5 6 7 ]

我想用1 2 3替换序列9

其结果将是:

代码语言:javascript
运行
复制
B = [ 8 7 9 4 5 9 4 5 6 7 ]

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-01 15:17:18

这可能是strfindbsxfun的一种方法-

代码语言:javascript
运行
复制
pattern = [1 2 3];
replace_num = 9;

B = A
start_idx = strfind(A,pattern)            %// Starting indices of pattern 
B(start_idx) = replace_num  %// Replace starting indices with replacement
B(bsxfun(@plus,start_idx(:),1:numel(pattern)-1))=[]    %// Find all group
               %// indices of the pattern except the starting indices and
              %// then delete them
票数 3
EN

Stack Overflow用户

发布于 2015-04-01 15:39:34

对于整数数组,可以滥用strrep

代码语言:javascript
运行
复制
%// given
A = [8 7 1 2 3 4 5 1 2 3 4 5 6 7]
seq = [1 2 3];
rep = 9;

%// substitution
B = strrep(A, seq, rep)
代码语言:javascript
运行
复制
B =

     8     7     9     4     5     9     4     5     6     7

就像在Divakar's answer中一样,strrepstrfind实际上应该用于字符串操作,但它们的工作原理就像一种魅力,也适用于数字数组。我认为,在内部,它们无论如何都与ASCII表示(或其他编码)一起工作,只返回与输入值相同的类中的输出值。为了我们的利益。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29393911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档