【问题标题】:Compare times between vector and matrix比较向量和矩阵之间的时间
【发布时间】:2016-11-28 16:55:42
【问题描述】:

我需要比较向量x 和矩阵y 的时间。 比如向量x

x = [1.472426760000000e+09; 1.472430300000000e+09; 1.472433840000000e+09; 1.472435100000000e+09]

还有矩阵y

y = [1.472426760000000e+09, 1.472430300000000e+09, 1.472435100000000e+09;
     1.472430300000000e+09, 1.472430300000000e+09, 1.472426760000000e+09;
     1.472433840000000e+09, 1.472430300000000e+09, 1.472435100000000e+09]

我想知道向量x 的哪些时间也在矩阵y 中。如果没有,请写NaN。生成的矩阵应该具有与矩阵 y 相同的维度。

我怎样才能做到这一点?

【问题讨论】:

    标签: matlab matrix vector


    【解决方案1】:

    您可以使用ismember 检查两个数组之间的成员资格。它将返回一个逻辑数组,其大小与第一个输入的大小相同,即true,无论值在第二个输入中,否则为false

    tf = ismember(y, x);
    

    然后您可以使用此结果将所有不在y 中的值替换为NaN

    y(~tf) = NaN;
    

    在您的示例数据中,y 中的所有值也在 x 中,因此不会有 NaN 值。

    更新

    如果您想要x 的值在y 中的位置,那么您可以使用ismember 的第二个输出为您提供此信息:

    [tf, ind] = ismember(y, x);
    

    【讨论】:

    • 嘿 Suever,效果很好!但是,我还希望在新矩阵中拥有向量 x 的索引 - 其中 x 的值等于矩阵 y 的值。
    • @EnzoBruckmamaan 已更新。我认为您指的是ismember 的第二个输出
    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    相关资源
    最近更新 更多