【问题标题】:How to use find function to find a specific coordinate?如何使用查找功能查找特定坐标?
【发布时间】:2014-08-04 21:06:53
【问题描述】:

对于 Matlab,我得到了一个函数 y= 3x+4y = 25000 使用'find' 函数时,我需要找到x 值。 我试过x = find(y == 25000) 并没有收到任何东西。我知道该函数返回非零值的索引。但不确定如何在这种情况下使用它。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    这通常需要solve,因为您正在尝试求解方程。

    除非您已经有一个具有正确值的向量,否则您可以像这样使用find

    x = 0:25000
    y = 3*x+4
    
    x(find(y==25000))
    

    请务必查看 doc finddoc solve 以了解它们的作用。

    【讨论】:

    • 哦,谢谢!我将研究解决功能。关于你对 find 函数的编码,我试过了,它返回了 [] 我认为这没什么。我忘了说我有一个 linspace 函数从 0 到 0.1 对 x 有影响吗?
    • @user3509716 如果您希望它用于浮点数或不精确匹配,您可能想尝试类似:max(x(y<=25000)) --- 如果y 不是单调的,您也可以在 Google 上搜索ismemberf 文件交换提交。
    • @user3509716 好吧,如果x0 变为0.1,那么y 将从4 变为4.3,所以你没有找到25000的机会。
    • 哦,抱歉,澄清一下我使用 y=3x+4 作为示例方程,因为我使用的方程要大得多。
    • 既然你说你的用例使用了一个更大的方程,那么在比较浮点数和 == 运算符时最好小心。
    【解决方案2】:

    您应该寻找最佳匹配而不是精确结果:

    x = 0:0.1:50000;
    y = 3*x+4;
    [value,index] = min(abs(y-25000))
    x(index)
    y(index) 
    

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 2013-08-07
      • 2022-12-15
      • 2010-09-27
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 2013-12-17
      相关资源
      最近更新 更多