比如一组数(1 1 0 2 2 0 0 0 2 1 2 2 2 2 1 1 1 2 2 2 0)
对2进行赋值
对于连续出现少于等于两个的2赋值为1
连续出现大于等于三个的2赋值为0
数组变成(1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 1
1 0 0 0 0)
求赐教这个代码怎么写,谢谢🙏
Matlab对不同连续的同一数字赋值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- ShowMeAI 2022-12-17 14:45关注
详细的代码实现及解释如下,望采纳
% 定义数组 arr = [1 1 0 2 2 0 2 1 2 2 2 2 1 1 1 2 2 2 0]; % 对连续的数字进行赋值 count = 1; for i = 2:length(arr) if arr(i) == arr(i-1) count = count + 1; else if arr(i-1) == 2 if count <= 2 arr(i-count:i-1) = 1; else arr(i-count:i-1) = 0; end end count = 1; end end % 对最后一段连续的数字进行赋值 if arr(end) == 2 if count <= 2 arr(end-count+1:end) = 1; else arr(end-count+1:end) = 0; end end % 输出结果 disp(arr);
代码中,我们使用了一个循环来遍历数组中的每个元素,并使用一个计数器来记录连续的数字数量。如果当前数字和上一个数字相同,那么计数器就加一;如果不同,就对上一段连续的数字进行赋值,并将计数器重置为 1。最后,还要注意最后一段连续的数字,因为最后一段数字在循环中不会被处理。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?