文档库 最新最全的文档下载
当前位置:文档库 › Matlab常见语法错误及解决方法

Matlab常见语法错误及解决方法

Matlab常见语法错误及解决方法
Matlab常见语法错误及解决方法

Matlab常见语法错误及解决方法

1.Subscript indices must either be real positive integers or logicals

中文解释:

下标索引必须是正整数类型或者逻辑类型

出错原因:

在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从0开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从1 开始,这与C 编程语言的习惯不一样。

解决办法:

自己调试一下程序,把下标为0

或者负数的地方修正。

$ ]$ m8 A. T9 c$ i8 W

2.Undefined function or variable "U"

中文解释:

函数或变量U 没有定义出错原因及解决办法:

可能变量名输入错误,仔细检查

3.Matrix dimensions must agree

中文解释:

矩阵的维数必须一致出错原因:这是由于运算符(= + - / * 等)

两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符matlab 通过“.”来区分矩阵运算和元素运算。

解决办法:

自己调试一下程序,保证运算符两边的运算对象维数一致。

4.Function definitions are not permitted at the prompt or in scripts

中文解释:

不能在命令窗口或者脚本文件中定义函数

出错原因:

一旦在命令窗口写

function c = myPlus(a,b),此错误就会出现,因为函数只能定义在m

文件中。关于脚本文件和m 文件的区别请查阅matlab 基础书。简言之:

1)

如果你写成function 的形式,那么必须写在m 文件中,且以function

开头(即function 语句前不能包含其他语句,所有语句必须放在function 中当然,

function 的定义可以有多个,各function 之间是并列关系,不能嵌套);

2)

如果你写成脚本的形式,则既可以写在命令窗口中,也可以写在m 文件中,但两者均不能包含function 语句(即不能进行函数的定义)

解决办法:

新建一个m 文件,然后再进行函数的定义

5.One or more output arguments not assigned during call to '...'

中文解释:

在调用

...

函数过程中,一个或多个输出变量没有被赋值

出错原因:

函数如果带有输出变量,则每个输出在返回的时候都必须被赋值。容易出现这个错误的两个地方是:在部分条件判断语句(如

if

)中没有考虑到输

出变量的返回值。

在循环迭代过程中部分变量的维数发生了变化

解决办法:

调试程序,仔细查看函数返回时各输出变量的值。更好的方法是:在条件判断或者执行循环之前对所使用的变量赋初值。

6.??? Index exceeds matrix dimensions

中文解释

索引超出矩阵的范围

出错原因:

在引用矩阵元素的时候,索引值超出矩阵应有的范围

解决办法:

检查所定义数组的维数,和引用的范围。

.In an assignment A(I) = B, the number of elements in B and I must be the same

Y d

matlab常见的错误提示及其解决方法

matlab常见的错误提示及其解决方法 (2011-07-23 09:08:09) 分类:matlab学习 标签: matlab 常见错误 原因 解决方法 it 今天在百度知道上收到求助,说想知道matlab常见错误。个人虽然也学了点matlab皮毛,并且碰过不少问题,但从没有认真总结过常见的错误。于是上网搜索一番,整理出常见的错误,当前以整理出的内容如下,不足之处待以后补充,也期待看到此篇博文的朋友帮忙指出不足。 1.Undefined function or variable "U" 中文解释:函数或变量 U 没有定义 出错原因:函数或变量 U 没有定义 解决办法:仔细检查错误所指向的位置,寻找没有定义的函数或者变量,加以定义。 2.Unexpected MATLAB expression. 中文解释:不规范的matlab表达式 出错原因:少了运算符号,或者括号等情况 解决办法:仔细检查错误所指向的位置,检查是否少了乘号,或者逗号、分号、括号等。 3.Subscript indices must either be real positive integers or logicals

中文解释:下标索引必须是正整数类型或者逻辑类型 出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出 现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。 解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。 4.Matrix dimensions must agree 中文解释:矩阵的维数必须一致 出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运 算符。matlab 通过“.”来区分矩阵运算和元素运算。 解决办法:自己调试一下程序,保证运算符两边的运算对象维数一致。 5.Function definitions are not permitted at the prompt or in scripts 中文解释:不能在命令窗口或者脚本文件中定义函数 出错原因:一旦在命令窗口写 function c = myPlus(a,b),此错误就会出现,因为函数只能定义在 m 文件中。 关于脚本文件和 m 文件的区别可查阅 matlab 基础书。 简言之: 1) 如果你写成 function 的形式,那么必须写在 m 文件中,且以function 开头(即 function 语句前不能包含其他语句,所有语句必须放在function 中,当然,function 的定义可以有多个,各 function 之间是并列关系,不能嵌套); 2) 如果你写成脚本的形式,则既可以写在命令窗口中,也可以写在 m 文件中,但两者均不能包含 function 语句(即不能进行函数的定义) 解决办法:新建一个 m 文件,然后再进行函数的定义

牛顿迭代法解元方程组以及误差分析matlab实现

.0],;,[0 ),()(),()(),(0),()(),()(),(,.**,0],;,[),()()(),()()(,0),(),(),(])()[(),(),(),(),(),(])()[(),(),(2,),(])()[(21),(])()[(),(),()(2 )(''))((')()(: 1n 1n 110101010100000000000000000000000000200000000000 00 000fg g f y y g f g f g f fg x x g g f f y x g y y y x g x x y x g y x f y y y x f x x y x f y x y x y x g f g f fg g f y y g f g f g f fg x x g f g f fg g f y y g f g f g f fg x x g g f f y x g y x g y y y x g x x y x f y x f y y y x f x x y x g y x f y x g y y y x x x y x g y x g y x f y x g y x f y y y x x x y x f y x f y x y x f y y y x x x y x f y y y x x x y x f y x f x x f x x x f x f x f x x n n x y y x y y y x y x n n y n n n x n n n n n y n n n x n n n n n x y y x x x x y y x y y x y y x x x x y y x y y y x y x y x y x y y x x y y x x y x y y x x ,则其解可记为: 的行列式不为若系数矩阵: 附近的线性化方程组为在一元方程牛顿迭代法,类似 ,的新近似值于是就得到了根,则可得解: 的行列式不为若系数矩阵),(),( ),(),( 则两式构成方程组: 令可得: 构成二元方程组,同样与若另有一方程: 阶小项,得到线性方程忽略在方程根附近取值时,当二元函数的展开为: 开类似一元函数的泰勒展?????+-+=-+-+=?????=-+-+=-+-+??? ????-+-+=-+-+=????????-+-=--+-=-?????-=-+--=-+-==??-+??-+=??-+??-+=??-+??-+??-+??-+=-+ -+=++========η ξξ

MATLAB实验题答案

1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000>> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A

matlab常用操作命令

matlab常用操作备忘(1)2007-11-30 22:01:06 分类: 北京理工大学 20981 陈罡 帮助朋友做几个数据的卷积的仿真,一用才知道,呵呵,发现对不住偶的导师了。。。好多matlab的关键字和指令都忘记了。特意收集回顾一下: (1)管理命令和函数 addpath :添加目录到MATLAB搜索路径 doc :在Web浏览器上现实HTML文档 help :显示Matlab命令和M文件的在线帮助 helpwin helpdesk :help 兄弟几个 lookfor :在基于Matlab搜索路径的所有M文件中搜索关键字 partialpath:部分路径名 8*) path :所有关于路径名的处理 pathtool :一个不错的窗口路径处理界面 rmpath :删除搜索路径中指定目录 type :显示指定文件的内容 ver :版本信息 version :版本号 web :打开web页 what :列出当前目录吓所有的M文件 Mat文件和 Mex文件 whatsnew :显示readme文件 which :显示文件位置 (2)管理变量和工作区 clear :从内存中删除所有变量,clear x y z是删除某个变量 disp :显示文本或数组内容 length :数组长度(最长维数) load :重新载入变量(从磁盘上) mlock :锁定文件,防止文件被错误删除 munlock :解锁文件 openvar :在数组编辑器中打开变量 pack :整理内存空间 save :保存变量到文件 8*) size :数组维数

who whos :列出内存变量 workspace :显示工作空间窗口 (3)管理命令控制窗口(command窗口) clc :清空命令窗口 echo :禁止或允许显示执行过程 format :设置输出显示格式 home :光标移动到命令窗口左上角 more :设置命令窗口页输出格式 (4)文件和工作环境 cd :改变工作目录 copyfile :复制文件 delete :删除文件和图形对象 diary :把命令窗口的人机交互保存到文件 dir :显示目录 edit :编辑文本文件 fileparts :返回文件的各个部分 fullfile :使用指定部分建立文件全名 inmem :返回内存(伪代码区)的matlab函数名 ls :在unix系统中列出目录(win中亦可) matlabroot :根目录 mkdir :新建目录 open :打开文件 pwd :显示当前目录 tempdir :返回系统临时目录的名字 tempname :随机给出一个临时字符串(可用作文件名) ! :直接调用操作系统command命令 (5)启动和推出matlab matlabrc :Matlab的启动M文件 exit quit :退出Matlab startup :运行matlab启动文件 (6)程序设计 builtin :从可重载方法中调用内置函数 eval :执行包含可执行表达式的字符串

基于matlab的信息隐藏代码实现

Matlab期中作业 标题:基于matlab的信息隐藏代码实现姓名:******** 班级:******** 学号:********

目录 摘要----------------------------------------------------------------------------------------------------------------------------- - 2 -前言----------------------------------------------------------------------------------------------------------------------------- - 2 - 一、图像隐藏技术的研究现状 ------------------------------------------------------------------------------------ - 2 - 二、实现图像隐藏的主要算法 ------------------------------------------------------------------------------------ - 4 - 三、基于行列变换的图像置乱与反置乱算法 ---------------------------------------------------------------- - 4 - 3.1 图像置乱算法 ----------------------------------------------------------------------------------------------------- - 4 - 3.2 图像反置乱算法-------------------------------------------------------------------------------------------------- - 5 - 四、基于m序列的图像加密与解密算法----------------------------------------------------------------------- - 5 - 五、相关程序代码及运行结果 ------------------------------------------------------------------------------------ - 5 - 5.1 源代码 --------------------------------------------------------------------------------------------------------------- - 5 - 5.2 运行结果 ------------------------------------------------------------------------------------------------------------ - 7 - 六、参考文献------------------------------------------------------------------------------------------------------------ - 8 - 七、总结 ------------------------------------------------------------------------------------------------------------------ - 8 -

MATLAB在数据误差处理中的应用

《MATLAB语言》课程论文 MATLAB在数据误差处理中的应用 姓名:于海艳 学号:12010245217 专业:通信工程 班级:2010级通信一班 指导老师:汤全武 学院:物理电气信息学院 完成日期:2011年12月23日

MATLAB 在数据误差处理中的应用 (于海艳 12010245217 2010级通信班) 【摘要】伴随着越来越多的数据的产生,数据处理的任务越来越重,本文就计算机软件MATLAB 在 数据处理的应用作一大只介绍。文章首先说明了误差理论与数据处理中的几个基本概念,然后详细介绍了数据样本误差请定的几个数字特征在MATLAB 中计算方法,接着介绍在的数据处理中广为应用的最小二乘法以及其在MATLAB 中的计算过程,文章的最后又大体说明了MATLAB 在数据样本的回归分析与利用经验公式求解数据规律中的应用。 【关键字】MATLAB 误差 数据处理 正态分布 最小二乘法 回归分析 经验公式 一、问题的提出 随着国民经济的迅速发展,大量的数据需要处理,误差理论和数据处理的任务也原来越重,传统的手算以及计算器等工具已不能满足需要。另一方面,计算机在我们的日常生活中的越来越普及,显然,运用计算机惊醒数据处理意识大势所趋。 MATLAB 是美国MathWorks 公司推出的一种简洁方便的工程计算语言,自从其问世就以其友好的用户界面和多种功能深受各方面欢迎。 测量数据的数据处理和数据分析涉及到最小二乘法、回归分析、曲线拟合以及线性方程组的求解内容,而这些正是MATLAB 的强项,另外,通过MATLAB 强大的图形功能,我们还能方便地将数据图形化,从而进行直观地分析处理数据。 二、几个基本概念 1、误差 在测量中,误差表示测得值与真值之差,若令测量误差为δ,测得值为x,真值为,则有 δ=x-x 0或x 0=x-δ (1) 由于实际应用中真值一般是无从知道或无法确定的,所以,在统计学中,常以测量次数足够大时的测得值的算术平均值近似代替真值。 2、算术平均值x 对一真值为x 0的物理量进行等精度的n 次测量,得n 个测得值x 1,x 2,L,x n ,它们都含有随机误差δ1,δ2,…δn ,统称真差。我们常以算术平均值作为n 次测量的结果,即 x =x 1+ x 2+L+ x n )=n x i ∑ (2) 3、残差v 各测得值x i 对其算术平均值的误差量叫做残余误差,简称残差,即 v= x i -x (3) 4、标准差(标准偏差)σ 在计量学中,常用标准差来评定测得值的精度,即 σ= n L n δ δ δ 222 21 +++ (n ∞→) (4)

MATLAB实验题答案

result5 = ( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么如合法, 结果是多少 >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 58 11 >> result4=b*d result4 = 31 22 22 40 49 13 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 415 30 >> result7=a./b result7 = >> result8= Attempt to reference field of non-structure array. >> result9=a.\b result9 = >> result10=a92 result10 = 1 4 9 16 25 36 >> resultl 1=29a result11 = 2 4 8 16 32 64 >> result5=[b;c']*d 3、用MATLAB求解下面的的方程组。 1、求以下变量的值,并在MATLAB^验证。

1 2 x1 3 2 x2 11 5 x3 2 1 3 x4 >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 7 2 1 2 9 15 3 2 2 2 11 5 1 3 2 13 (1)求矩阵A的秩(rank) (2)求矩阵 A 的行列式(determinant) (3)求矩阵 A 的逆(inverse) (4)求矩阵 A 的特征值及特征向量 (eigenvalue and eigenvector) >> A3=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> r=rank(A3) >> b=inv(A3) >> a=det(A3) >> [V,D]=eig(A3) 10 n 10 查看y 的值) m1=0; for m=-10:10 m仁m1+2^m; end m1 m1 = 6、求分段函数的值。 用if 语句实现,算出下列表中x 对应的y 值。 x=input('enter x='); if x<0 y=x A2+x-6; elseif x>=0&&x<5 y=xA2-5*x+6; else y=xA2-x-1; end y 7、分别用if 和switch 语句实现,将百分 制成绩转换为成绩等级A、B、C、D、E。 其中90~1 00分为A,80~89 分为B,70~79 分为C,60~69 分为D,60 分以下为E。 对超出百分制范围的成绩,给出错误提示 信息。 if 结构程序: x=input('please enter score='); if x>=90&&x<=100 9 2 10 disp('A') 7 2 9 15 (1) 2 2 1 3 4 7 1 0 A 4、已知 2n 2 10 29

matlab安装常见问题解决方案

1、安装MATLAB7时弹出以下警告对话框,显示 " The installer cannot read the mwinstall.dll file, This is probably due to a CD reader which can only read files with an eight.three naming convention. Please see the technical support page at " 解决的办法是在【我的电脑】-右键-【属性】然后选择【高级】-【环境变量】,将环境变量中位于上部的用户变量中的TEMP和TMP修改为C:/temp即可,并备份好原来的路径。安装文件一定要放在英文目录下,如:E:\software\matlab 7.0就可以,而E:\软件\matlab 7.0就不行。 2、我的matlab7.0也出现这种毛病,打开就自动关闭,请问怎么解决? 完成后你会发现打开后一会就自动关闭,不要惊慌,你的机器cpu一定是amd的,在你的安装文件夹下找到atlas_Athlon.dll文件,是用来让amd芯片进行正常工作的。因为当初mathwork公司是以intel芯片为目标的。找到这个文件比如路径是D:MA TLAB7 \bin\win32\atlas_Athlon.dll,再次右键单击我的电脑属性,高级,环境变量,系统变量新建变量名:BLAS_VERSION,值为D:MATLAB7 \bin\win32\atlas_Athlon.dll 3、问题: 启动Matlab以后显示: The element type "name" must be terminated by the matching end-tag "". Could not parse the file: d:\matlab7\toolbox\ccslink\ccslink\info.xml 解决: 打开matlab7.0就出现如下的提示 The element type "name" must be terminated by the matching end-tag "". Could not parse the file: d:\matlab7\toolbox\ccslink\ccslink\info.xml. 解决方法是: 找到d:\matlab7\toolbox\ccslink\ccslink\info.xml 这个文件(如果是装在C盘则在C盘目录下),一定要用写字板打开这个文件,找到有一行这样的Link for Code Composer Studio?/name>,大概是在第七行吧,把这句的/name>改成,再保存一下这文件。

matlab常见错误命令

matlab常见错误命令 >> a=【0 1 2 3 4 5 6 7 8 9】 ??? a=【0 1 2 3 4 5 6 7 8 9】 Error: The input character is not valid in MATLAB statements or expressions. error ['er?]n. 错误,过失input ['input]n. 输入character ['k?rikt?]n. 个性,字符,人物valid ['v?lid]a。有确实根据的,有效的,正当的statement ['steitm?nt]n. 声明,陈述expression [iks'pre??n]n. 表达,表示,表现,表情,措辞,词句expressions n.表示式公式>> x=-5:5;y=-5:5;z=x^2+y^2;polt(x,y,z) Error using ==> mpower Matrix must be square. matrix ['meitriks]n. 母体,子宫,细胞,脉石,字母n.矩阵 square [skw??]n. 正方形,街区,平方a. 正方形的,正直的,公正的v. 一致,符合,使...成方形>> x=-5:5;y=-5:5;z=x.^2+y.^2;polt(x,y,z) Undefined function or method 'polt' for input arguments of type 'double'. undefined ['?ndi'faind]未定义的function ['f??k??n]n.功能,函数,重大聚会vi. 运行,起作用method ['meθ?d]n. 方法,办法argument ['ɑ:gjum?nt]n. 辩论,争论,论据,理由

基于图像LSB的秘密信息隐藏技术_叶天语

文章编号:1006-2475(2005)11-0028-04 收稿日期:2004-12-20作者简介:叶天语(1982-),男,浙江温州人,汕头大学电子工程系硕士研究生,研究方向:数字图像处理与信息安全。 基于图像LSB 的秘密信息隐藏技术 叶天语 (汕头大学电子工程系,广东汕头 515063) 摘要:基于图像的信息隐藏技术有着广泛的应用,而最低有效位算法是其中有效的方法之一。本文首先对载体图像进行位平面分析,发现LSB 位具有最好的隐藏效果;然后分别实现了三个以二值图像和文本文件作为秘密信息的信息隐藏和提取实验。实验结果表明:基于图像LSB 的秘密信息隐藏不仅具有算法简单、透明性良好的特点,而且还具有隐藏信息容量大、无失真提取、对文本文件具有双重隐藏功能等优点。关键词:图像;LSB;信息隐藏 中图分类号:TP391.41 文献标识码:A Secret Information Hiding Technology Based on LSB of Image YE Tian -yu (Department of Electronic Engineering,Shantou University,Shantou 515063,China) Abstract:Secret i nformation hiding technology based on i mage has broad applications.LSB algorithm is one of effective algori th ms.This paper first introduces the method of bit plane analysis,finding LSB has the bes t hiding effect,then respectively realizes three experi ments on information embedding and extracting:the first one takes an image with two different values as secret information and another two take a text file as secret information.The experi mental resul ts show that secret information hiding technology based on LSB of image not only has the advantages of si mplicity,good imperceptibility,bu t also has great hiding capaci ty,extraction wi th no distortion,dual hiding effect for text file,and so on. Key words:image;LSB;information hiding 0 引 言 信息隐藏是在网络环境下把机密信息隐藏在其它无关紧要的信息中形成隐秘信道,除通信双方以外的任何第三方并不知道秘密通信这个事实的存在。它与密码加密方法进行的保密通信相比,信息加密从/看不懂0变为/看不见0,转移了攻击者的目标。这种技术具有良好的透明性,即隐藏了秘密的信息,即使你看见了、听见了还是不能有所发现,加入了秘密信息的媒体在传输时与未加入秘密信息前的媒体没有什么不同。 信息隐藏技术发展到今天,已出现了各式各样的隐藏方法,最低有效位算法LSB(least significant bit )是一种简单而通用的信息隐藏方法,大部分的多媒体文件(如图像、音频和视频文件等)都可作为LSB 算法中 的载体。本文讨论以图像为载体的LSB 隐藏算法。 1 数字图像的最不重要位嵌入方法 (1)位平面分析。 根据图像采用的颜色数,可以将图像分为2位、8 位、24位图。图像中每个像素点的颜色值的某一位共同构成的一个新的二值图像就称为该图像的一个位平面图像。可以定义图像的第0个位平面到第7个位平面依次为最不重要位平面(LSB)到最重要位平面。一个8位灰度图graylena.tif 的8个位平面分解如图1所示。注意到较高位(特别是前四位),包含了大多数在视觉上很重要的数据,其他位平面对图像中更多的微笑细节有作用。把数字图像分解成位平面对于分析每一位在图像中的相对重要性是非常有用的。可以看出,图像的位平面存在一定的规律 计算机与现代化 2005年第11期 JISUANJI YU XIANDAIHUA 总第123期

matlab常见错误

1.Subscript indices must either be real positive integers or logicals 中文解释:下标索引必须是正整数类型或者逻辑类型 出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从1 开始,这与 C 等编程语言的习惯不一样。 解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。 2.Undefined function or variable "U" 中文解释:函数或变量 U 没有定义 .出错原因及解决办法:可能变量名输入错误,仔细检查 3.Matrix dimensions must agree 中文解释:矩阵的维数必须一致 出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。matlab 通过“.”来区分矩阵运算和元素运算。 解决办法:自己调试一下程序,保证运算符两边的运算对象维数一致。 4.Function definitions are not permitted at the prompt or in scripts 中文解释:不能在命令窗口或者脚本文件中定义函数 出错原因:一旦在命令窗口写 function c = myPlus(a,b),此错误就会出现,因为函数只能定义在 m 文件中。关于脚本文件和 m 文件的区别请查阅 matlab 基础书。简言之: 1) 如果你写成 function 的形式,那么必须写在 m 文件中,且以 function 开头(即 function 语句前不能包含其他语句,所有语句必须放在 function 中,当然,function 的定义可以有多个,各 function 之间是并列关系,不能嵌套); 2) 如果你写成脚本的形式,则既可以写在命令窗口中,也可以写在 m 文件中,但两者均不能包含 function 语句(即不能进行函数的定义) 解决办法:新建一个 m 文件,然后再进行函数的定义 5.One or more output arguments not assigned during call to '...' 中文解释:在调用...函数过程中,一个或多个输出变量没有被赋值 出错原因:函数如果带有输出变量,则每个输出在返回的时候都必须被赋值。容易出现这个错误的两个地方是:在部分条件判断语句(如 if )中没有考虑到输出变量的返回值。 在循环迭代过程中部分变量的维数发生了变化。 解决办法:调试程序,仔细查看函数返回时各输出变量的值。更好的方法是:在条件判断或者执行循环之前对所使用的变量赋初值。 6.??? Index exceeds matrix dimensions.

MATLAB实验题目及答案

实验二一维二维数组的创建和寻访 一、实验目的 1、掌握一维数组、二维数组创建和寻访的几种方法。 2、区别数组运算和矩阵运算的差别。 3、熟悉执行数组运算的常用数组操作函数。 4、掌握数组运算中的关系和逻辑操作及常用的关系、逻辑函数。 5、掌握“非数”、“空”数组在MA TLAB中的应用。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第三章MATLAB的数值数组及向量化运算功能。 四、实验内容及实验步骤 1、一维数组的创建方法有哪几种?举例说明。 答:一维数组的创建方法有: ①递增/递减型一维数组的创建:冒号生成法:x=a:inc:b 线性(或对数)定点法:x=linspace(a,b,n),x=logspace(a,b,n) ②逐个元素输入法:如x=[0.1,sin(pi/5),-exp(-3),-2*pi] ③运用MA TLAB函数生成法:例ones,rand等。 2、输入以下指令,并写出运行结果。本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。 A=zeros(2,6) %创建(2×6)的全零数组 A(:)=1:12 %赋值号左边:单下标寻访(2×6) 数组A的全部12个元素 %赋值号右边:拥有12个元素的一维数组 A(2,4) %双下标:A数组的第2行第4列元素 A(8) %单下标:数组A的第8个元素 A(: , [1,3]) %双下标:显示A的“第1列和第3列上全部行的元素” A([1, 2, 5, 6]') %单下标:把A数组第1,2,5,6个元素排成列向量 A(: , 4:end) %双下标:显示A的“从第4起到最后一列上全部行的元素” %在此end用于“列标识”,它表示“最后一列” A(2,1:2:5)=[-1, -3, -5] %把右边的3个数分别赋向A数组第2行的第1,3,5个元素位置 B=A([1, 2, 2, 2], [1, 3, 5]) %取A数组的1,3,5列的第1行元素作为B的第1行 %取A数组的1,3,5列的第2行分别作为B的第2,3,4行 L=A<3 %产生与A维数相同的“0,1”逻辑数组 A(L)=NaN %把逻辑1标识的位置上的元素赋为“非数” 运行结果: A = 0 0 0 0 0 0 0 0 0 0 0 0

基于LSB的信息隐藏算法

《信息隐藏技术》实验 实验三:基于LSB的信息隐藏算法 学生姓名:学号: 学院: 计算机学院 专业: 信息安全 班级: 指导教师: 2015年 12 月 16 日

目录 1 实验目的 (2) 2 实验环境及内容 (2) 3 实验原理 (2) 4 实验步骤 (3) 5 实验思考和总结 (12)

1实验目的 该实验为验证性实验。目的是通过实验使学生掌握经典隐藏算法,在MATLAB环境下,编写基于图像的LSB信息隐藏算法程序。用MATLAB 函数实现LSB信息隐藏,并进行分析。 2实验环境及内容 ●实验环境 安装MATLAB7.0的计算机 ●实验内容 首先学会提取图片的八个位平面,然后再将信息隐藏在最低位平面中。 3实验原理 LSB(least significant bit)算法是最早提出的一种典型的空间域信息隐藏算法。它使用特定的密钥通过伪随机序列发生器产生随机信号,然后按一定的规则排列成二维水印信号,并逐一插到原始图像相应像素值的最低几位。由于水印信号隐藏在最低位,相当于叠加了一个能量微弱的信号,因此在视觉和听觉上很难察觉。作为大数据量的信息隐藏方法,LSB在隐藏通信中仍占据相当重要的地位。 隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。嵌入过程包括选择一个图像载体像

素点的子集{j1,…,jl(m)},然后在子集上执行替换操作像素cji←→mi,即把cji的LSB与秘密信息mi进行交换(mi可以是1或0)。一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特信息,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。在提取过程中,找出被选择载体图像的像素序列,将LSB(最不重要位)排列起来重构秘密信息,算法描述如下: 嵌入过程:for(i=1;i<=像素序列个数;i++) si←ci for(i=1;i<=秘密消息长度;i++) //将选取的像素点的最不重要位依次替换成秘密信息 sji←cji←→mi 4实验步骤 提取位平面源代码 a = imread('1.jpg'); b = rgb2gray(a); %将彩色图像转换为灰度图像 c = bitand(b, 1); figure(1); imshow(c); d = bitand(b, 2);

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

Matlab常见语法错

Matlab常见语法错误 Subscript indices must either be real positive integers or logicals 中文解释:下标索引必须是正整数类型或者逻辑类型 出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从1 开始,这与C 等编程语言的习惯不一样。 解决办法:自己调试一下程序,把下标为0 或者负数的地方修正。关于矩阵的各种访问方式。 举例: 【错误代码】: 1.for s = 0:0.2:2 2. a(s) = 4 * s - 1; 3.end 复制代码 【正确代码】: 1. 2.for s = 1:10 3. a(s) = 4 * s - 1; 4.end 复制代码 当然,这样的赋值使用循环是低效的,因此不提倡

Undefined function or variable "a" 中文解释:函数或变量 a 没有定义 出错原因及解决办法: 1. 如果 a 是变量,则参见[原创]写给学习 matlab 的新手们一贴中技巧 6 后半部分 2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m 文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看) 举例: myPlus.m: 1.function d = myPlus(a,b) 2. d = a + b; 复制代码 【错误调用】: 命令窗口: 1.>> z = myPlus(a,b) 复制代码 【正确调用】: 命令窗口: 1.>> x = 2; 2.>> y = 5; 3.>> z = myPlus(x,y) 复制代码

MATLAB常用指令

MATLAB常用指令 1.常用命令-->管理命令和函数 addpath 添加目录到MATLAB搜索路径 doc 在Web浏览器上现实HTML文档 help 显示Matlab命令和M文件的在线帮助 helpwin helpdesk help lookfor 在基于Matlab搜索路径的所有M文件中搜索关键字partialpath 部分路径名 path 所有关于路径名的处理 pathtool 一个不错的窗口路径处理界面 rmpath 删除搜索路径中指定目录 type 显示指定文件的内容 ver 版本信息 version 版本号 web 打开web页 what 列出当前目录吓所有的M文件Mat文件和Mex文件whatsnew 显示readme文件 which 显示文件位置 (返回) 2.常用命令-->管理变量和工作区(输入输出、内存管理等) clear 从内存中删除 disp 显示文本或数组内容 length 数组长度(最长维数) load 重新载入变量(从磁盘上) mlock 锁定文件,防止文件被错误删除 munlock 解锁文件 openvar 在数组编辑器中打开变量 pack 整理内存空间 save 保存变量到文件8*) size 数组维数 who 列出内存变量 whos 列出内存变量,同时显示变量维数 workspace 显示工作空间窗口 (返回) 3.常用命令-->管理命令控制窗口(command窗口) clc 清空命令窗口 echo 禁止或允许显示执行过程 format 设置输出显示格式 home 光标移动到命令窗口左上角 more 设置命令窗口页输出格式 (返回)

相关文档