遍历一个向量与legth变化

1视图(30天)
大家好。我想遍历一个矢量,z说,在每个迭代中去除一些元素,使用类似
z = z (abs (z-z (i) > = 1))
我的问题是,我不知道如何形成循环。我试着使用
成员z =
但话又说回来,我需要计算每个元素,这样是行不通的。谁能帮我吗?

接受的答案

吉隆坡
吉隆坡 2018年3月22日
为什么不使用while循环?
idx = 1;
idx < =元素个数(z)
%做某事
z = z (abs (z-z (idx) > = 1));
idx = idx + 1;
结束
2的评论
Stephen23
Stephen23 2018年3月22日
编辑:Stephen23 2018年3月22日
“我需要计算每个元素,这样不工作”
这个答案也不知道。这个答案不 “与每个元素计算” 问题请求,它实际上错过计算遵循任何删除元素的元素,恰好是一个位置超过当前指数(因为元素移除和指数增量密谋反对作者)。
与这个简单的示例中,相同的概念后,删除所有值 z :
z = [1, 1、2、2、3、3、4、4、4、5);
idx = 1;
idx < =元素个数(z)
如果国防部(z (idx), 2) = = 0
z (idx) = [];
结束
idx = idx + 1;
结束
但最后仍有甚至向量中的值!:
z > >
z =
1 1 2 3 3 4 5
实际上它是 测试检查,如果他们甚至所有元素!一般来说并不是所有的元素被这个算法虽然在一些特殊的情况下测试。
看到简西蒙回答的正确分析这个问题。

登录置评。

答案(1)

1月
1月 2018年3月22日
遍历一个向量的元素不能工作,如果你删除元素的向量,除非你过程开始和结束的元素删除元素,在当前元素。
z =兰德(10)
k = 9: 1:1
如果z (k) < 0.5
z (k + 1) = [];
结束
结束
这个不能工作,如果你运行它相反的方向从1到9。
所以“循环向量”到底是什么意思,如果你删除元素?它不能成为一个“元素的元素”。向量完全会发生什么?你必须定义这个很明显,才可以实现。
1评论
亚历克斯·德·C
亚历克斯·德·C 2018年3月22日
谢谢你的回复。事情是这样的,我计算为每个元素并根据结果,我及其ajdustents删除它。我会用一个while循环,我想它会工作

登录置评。

类别

找到更多的在循环和条件语句帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!