AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 79472357
Accepted
Edwin
Edwin
Asked: 2025-02-27 18:28:32 +0800 CST2025-02-27 18:28:32 +0800 CST 2025-02-27 18:28:32 +0800 CST

八度轮廓函数返回未接受的错误消息

  • 772

我一直试图解决这个问题,但至今没有任何进展。

从 Coursera 课程“使用 MATLAB 进行数据、信号和图像分析简介”中检索到以下代码。我正在尝试看看是否可以在 Octave 9.2 中运行它。但这会导致错误:

错误:contourc:X、Y 和 Z 必须是实数数字矩阵错误:从 contourc 调用,位于第 110 行第 5 列,位于第 146 行第 14 列,位于第 80 行第 18 列,位于第 19 行第 3 列的轮廓,位于分类 1

X、Y 和 cls 的类别为 double,且所有 3 个的大小均为 4x8。

阅读这篇文章:八度轮廓图轮廓函数工作正常。没有错误。但是使用代码:

function classification1()
  load fisheriris
  pkg load statistics
  [~,~,s] = unique(species);
  figure(1);
  plot(meas(s==1 ,1), meas(s==1, 2), 'rx')
  hold on
  plot(meas(s==2 ,1), meas(s==2, 2), 'go')
  plot(meas(s==3 ,1), meas(s==3, 2), 'b*')
  xlabel('Feature 1');
  ylabel('Feature 2');
  legend('setosa', 'versicolor', 'virginica');
  [X,Y] = meshgrid(4:.01:8, 2:.01:4.5);
  cls = my_iris_classifier([X(:), Y(:)]);
  cls = reshape(cls, size(X));
  contour(X, Y, cls==1,[1,1], 'r--');
  contour(X, Y, cls==2, [1, 1], 'g--');
  contour(X, Y, cls==3, [1, 1], 'b--');

endfunction

function class = my_iris_classifier(feat)
    class = zeros(size(feat,1),1);
    for i = 1:size(feat,1);
      if feat(i,1) > 6
        class(i) = 3;
      elseif feat(i,2) > 3
        class(i) = 1;
      else
        class(i) = 2;
      endif
    endfor

endfunction

但事实并非如此。

matlab
  • 1 1 个回答
  • 27 Views

1 个回答

  • Voted
  1. Best Answer
    Nick J
    2025-02-27T23:01:02+08:002025-02-27T23:01:02+08:00

    Matlab 没有记录允许在 contour 中对 Z 数据进行逻辑输入。请参阅matlab 帮助中的 contour和contourc。Octave编写了 contourc 来执行输入检查,并对不正确的输入类型抛出错误,这就是您所看到的。正如 Octave 开发人员在Octave 帮助论坛上的交叉帖子中提到的那样,最好的直接方法是将来自类似语句的所有逻辑输入重新转换为cls==1type double,例如:

    contour(X, Y, double(cls==1),[1,1], 'r--');

    这之前已在Octave 错误 #64078中捕获,该错误确定了一长串限制或不当处理某些输入类型的绘图对象。并非所有这些对象都必然会得到扩展,因为Octave 通常不愿意采用未记录的行为,因为这些行为可能会(并且过去确实)在没有通知的情况下发生变化,从而导致多年后的进一步麻烦,但可以根据具体情况考虑,但至少已知不支持 Matlab 未记录的行为可以在 Octave 中记录下来。不过,这种兼容性似乎相当微不足道,因此将来可能会有所改善。

    • 2

相关问题

  • 具有复数的 matlab accumarray

  • 当散点图符号在图中半透明时如何使Matlab图例显示不透明的绘图符号

  • 使用具有相同形状的一维卷积,因此它可以与 FFT 一起使用吗?

  • 使用文件范围变量进行单元测试,无需类

  • 在 MATLAB 2022 中使用 ode45 时出现未定义的结果 (NaN)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve