MATLAB:向量元素的变化

时间:2014-10-18 11:01:19

标签: matlab linear-algebra

我有一些不同大尺寸的矢量,它们的值介于01之间。我想保存那些十进制有任何变化的元素索引。举个小例子,我们假设

     V=[0.02,0.1,0.4,0.0054,0.05];

现在ouptput应该是

     i={2,4,5}

请您告诉我怎么做?

2 个答案:

答案 0 :(得分:0)

count = arrayfun(@(x) regexp(num2str(x),'\.','split'),V, 'UniformOutput', false)
dp = cell2mat(arrayfun(@(x) length(x{2}),count, 'UniformOutput', false))
find(diff(dp))+1
我是这样做的。首先我分开数字然后我找到第二个词的长度,最后,我发现长度是否与之前的长度不同..

答案 1 :(得分:0)

根据@Luis Mendo的建议(包括他删除〜= 0 的建议),这里的评论作为答案。您可以使用对数函数来确定您的小数位数。

i = find(diff(floor(log10(V))))+1

请务必使用 floor 来设置可与0比较的整数值。