总结一些自己遇到过的使人抓狂的报错,往往是自己粗心大意造成的:

1、变量名与函数名混用

disp('jafjjaja')

??? Index exceeds matrix dimensions

原因:前面把disp定义为变量了,编程的时候千万要注意噢!已存在的函数名不能用作变量名

2、浮点数的大小比较问题

find(a==b)

ans =

Empty matrix: 1-by-0

或者

>> format long

>> a

a =

0.793000000000000

>> b

b =

0.793000000000000

>> a == b

ans =

0

原因:这里牵扯到eps

eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高。浮点数其实是离散的,有限的,而且间隔是不均匀的。越靠近0,数和数之间就越密集,精度就越高。

默认a=1。eps=eps(1),是1的精度。也就是说matlab无法表示介于1和1+eps之间的数,这些数将被四舍五入到1或1+eps。比如1+0.3*eps被舍入到1,而1+0.7*eps被舍入到1+eps。2的精度就比1的精度要低。事实上,matlab无法区分介于2和2+2*eps之间的数。也就是说eps(2)=2*eps,0的精度是最高的,也就是说eps(0)才是matlab所能表示的最小的正数。它和eps(1)相比相差了300多个数量级:

>> eps(0)

ans =

4.940656458412465e-324

>> eps(1)

ans =

2.220446049250313e-16

正确的比较方法如下:

>>a-b

ans =

1.110223024625157e-16

>> eps

ans =

2.220446049250313e-16

>> (a-b)

ans =

1

3、fread读取数据

total = h*w;

img = fread(fid,total,'float');

img = reshape(img,w,h);

total是9325892,而img只有9240576,导致报错

To RESHAPE the number of elements must not change.

解决:

开头我以为是元素个数超出了matlab限制,查了一下:

[str,maxsize] = computer

str =

PCWIN64

maxsize =

2.8147e+14

it depends on the memory of your computer,including virtul mem provided by your operating system. 天文数字不可能超的啊。

后来发现是自己fopen的文件本身就只有9240576个float数据,粗心而已~

(TO BE CONTINUE)

matlab报错集锦,matlab编程笔记:错误集锦相关推荐

  1. 解决Matlab报错:MATLAB 先前因底层图形错误而崩溃。为避免在此会话期间再次崩溃,MATLAB 将使用软件 OpenGL 而不再使用图形硬件。

    报错如下: -----------------------------------------------------------------------Assertiondetected at We ...

  2. java小括号报错_JAVA新人常犯错误集锦

    学习程序设计,最怕的事情可能就是遇到错误却找不到错在哪里.这里列举一下笔者发现的JAVA新人常犯的错误,供目前正在上笔者JAVA课程的学生参考,其他JAVA初学者亦可借鉴. 1.没有区分中英文 在JA ...

  3. 混合罚函数法matlab报错,罚函数法MATLAB程序

    一.进退法.0.618法.Powell法.罚函数法的Matlab程序设计 罚函数法(通用) function y=ff(x,k) y=-17.86*0.42*x(1)/(0.8+0.42*x(1))* ...

  4. Matlab报错:错误使用 rgb2gray>parse_inputs (第 79 行) MAP 必须为 m x 3 的数组。请对 RGB 和灰度图像使用 im2gray。

    拟解决问题: Matlab报错:错误使用 rgb2gray>parse_inputs (第 79 行) MAP 必须为 m x 3 的数组.请对 RGB 和灰度图像使用 im2gray. 下述程 ...

  5. matlab报错问题处理,函数或变量无法识别,不受支持的符号、不可见的字符或非 ASCII 字符的粘贴———卸载之前

    matlab报错问题处理,, 文本字符无效.请检查不受支持的符号.不可见的字符或非 ASCII 字符的粘贴. matlab里面缺少自带函数处理办法: 1.比较好的方法是重装. 2.也可以缺哪个文件,就 ...

  6. Matlab报错:需要的 第 1 个输入, I or X, 应为 二维

    Matlab报错:需要的 第 1 个输入, I or X, 应为 二维 >> imhist(f); 错误使用 imhist 需要的 第 1 个输入, I or X, 应为 二维. 错误原因 ...

  7. MATLAB报错:未定义函数或变量解决方案

    MATLAB报错:未定义函数或变量 MATLAB报错:未定义函数或变量 常见错误原因 我的解决方案 MATLAB报错:未定义函数或变量 最近准备数学建模比赛,学习MATLAB入门遇到了个问题:未定义函 ...

  8. MATLAB报错Invalid ADAPTORNAME specified. Type 'imaqhwinfo' for a list of available ADAPTORNAMEs. Image

    MATLAB报错Invalid ADAPTORNAME specified. Type 'imaqhwinfo' for a list of available ADAPTORNAMEs. Image ...

  9. 【报错解决】matlab报错:缺少动态链接库VCOMP100.DLL

    问题分析: matlab报错:缺少动态链接库VCOMP100.DLL 在编译某mexw64文件时可能出现. 原因:windows10版本的C:\Windows\System32目录下动态链接库已经是V ...

  10. MATLAB报错:未定义函数或变量解决办法

    MATLAB报错:未定义函数或变量解决办法 edit(fullfile(matlabroot,'examples','nnet','main','此处放未定义函数')) 比如: edit(fullfi ...

最新文章

  1. 惠普打印机节能环保认证证书_学生在家学习 入门级喷墨打印机 300元-500元档
  2. Java NIO之通道
  3. JS之返回指定位置字符的charAt方法
  4. 【Java】如何理解Java中的双列集合Map?
  5. 《程序设计技术》第三章例程
  6. 机器学习基础(五十九)—— 高级优化算法(梯度下降、L-BFGS、共轭梯度)
  7. STP是一个需要众力协作的协议
  8. Ice的HelloWorld(Java)
  9. 利用WireShark下载视频网站的流媒体视频
  10. 基于django的图书商城管理系统毕业设计源码110938
  11. c35是什么意思_混凝土C35P6是什么意思
  12. vue2的 watch的理解(7)
  13. C语言 进阶版三子棋小游戏
  14. Unity --- 导航网格 与 导航的使用
  15. 2017-03-27Oracle故障gc buffer busy acquire导致数据库不可用
  16. android硬件加速默认,android 硬件加速
  17. JavaEE学习日志(七十三): 黑马商城项目(六)
  18. Adobe Photoshop(ps)
  19. VB基础版版务处理_20050808
  20. arduino pro mini NRF2401使用

热门文章

  1. 玩了一场剧本杀,同车队友“不是人”
  2. 在overleaf中下载beamer模版(用latex编写ppt文件)
  3. (转)永磁同步电机工作原理(https://blog.csdn.net/jianwen01/article/details/5931881)
  4. Flink Watermark 源码分析
  5. 利用Fiddler中的FiddlerScript自动保存抖音PC网页版视频链接(相当于一个爬虫)
  6. 计算机技术培训的现状,信息技术教学应用个人现状分析以及发展计划
  7. 原生js实现form表单序列化的方法
  8. Java ppt转图片部署到Linux 乱码
  9. 树莓派基础实验32:DS1302实时时钟模块实验
  10. 医疗器械YY0505-2012、YY9706.102-2021检测报告,EMC电磁兼容标准解析