【问题标题】:Finding the number of leading zeros from numbers in a vector从向量中的数字中查找前导零的数量
【发布时间】:2021-07-17 18:14:04
【问题描述】:

我有一个向量。假设 x=[0 -2 -1 -1 -1 0 0 -1]。我想从 x 向量中找到符号。符号为 (1,-2), (0,-1), (0,-1), (0,-1), (2,-1)。

(1,-2) 表示“-2”前面有一个“0”。 (0,-1) 表示“-1”前面没有“0”。 (2,-1) 表示“-1”前面有两个“0”。

有什么想法吗?编码好像有点难。

【问题讨论】:

    标签: matlab vector statistics


    【解决方案1】:

    您可以使用finddiff 做到这一点:

    x=[0 -2 -1 -1 -1 0 0 -1];
    
    idx = find(x ~= 0); % Get the positions of the non-zero elements
    symbols = [diff([0,idx])-1; x(idx)]; % Number of positions since previous non-zero
                                         % With the corresponding element underneath
    

    获取输出

    symbols =
         1     0     0     0     2
        -2    -1    -1    -1    -1
    

    你的配对对应于这个数组中的列。

    【讨论】:

    • 狼,谢谢你的回答。我有很多这样的符号。认为有一个“NX1 单元”,每行都有“2xM 双”。 M 可能在每一行中都不同。我必须找到每个符号的概率,而且很难从这种类型的表示中计算出来。有没有办法显示我在问题中提到的符号?
    • MATLAB 是为擅长处理矩阵而构建的,您将很难以比这更有效的方式来表示符号...您可以制作一个 2x1 向量的元胞数组,看起来更像你的问题表示,但任何计算都将更难处理......如果你被困在一些相关但新的东西上,请问一个新问题
    猜你喜欢
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多