matlab - 检测向量的变化

标签 matlab vector

我想找到向量中一系列相等元素的第一个元素。 例如我有

V = [1 2 2 2 3 3 3 4 4 2 2 3 3 4 4]

我的结果应该是

R = [1 2 3 4 2 3 4]

不幸的是我不能使用 unique 因为它会给我

R = [1 2 3 4];

谢谢

最佳答案

这适用于这种特殊情况:

 R=V(find(diff([-Inf V])));

相同
 R=V(abs(diff([-Inf V]))>0);

(最后一个,正如 Praetorian 所指出的,可以更整洁地表达为

 R=V(diff([-Inf V])~=0);

节省您对 abs 的使用

最后,如果你想变得非常合乎逻辑,

 R=V(~~diff([-Inf V]));

也有效

关于matlab - 检测向量的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18963912/

相关文章:

matlab - fminbnd 没有给出最小值

Matlab 将向量转化为矩阵

c++ - 在 C++ 中,如何以与从映射中检索值相同的顺序从 vector 中检索值?

c++ - 错误 : No operator “<<” matches these operands

matlab - 64 位 MATLAB 可以使用预编译的 32 位 mex 文件吗?

matlab - 你如何在 MATLAB 中使用 LaTeX 黑板字体?

user-interface - 如何将组件添加到指南创建的现有 GUI 中?

c# - C# 中的缓存友好性

C++11 对模板参数类型的 vector 使用迭代器

C++通过范围for循环将整数输入 vector ;随机 0