matlab常见错误及处理办法

matlab常见错误及处理办法
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.

中文解释:索引超出矩阵的范围

出错原因:在引用矩阵元素的时候,索引值超出矩阵应有的范围解决办法:检查所定义数组的维数,和引用的范围。

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

中文解释:在赋值语句 A(I) = B 中,B 和 I 的元素个数必须相同

出错原因:I 和 B 的维数、大小不一样。这正如“把 5 个水果放到 6 个篮子”、或者“把 6 个水果放到 5 个篮子”,均无法实现

解决办法:自己设置断点调试一下,看看 I 和 B 的维数、大小是否相同,不同的话就要修改成两者一致

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常用操作命令

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课后习题解答

P16 Q2: 计算表达式()2 tan arccos x x -在0.25x =和0.78x π =时的函数值。 function y=jie(x) y=tan(-x.^2)*acos(x); >> jie(0.25) ans = -0.0825 >> jie(0.78*pi) ans = 0 + 0.4418i Q3:编写M 命令文件,求5010 2 1 1 1k k k k ==+ ∑∑ 的值。 a=0;b=0; for i=1:50 a=a+i*i; end for j=1:10 b=b+1/j; end c=a+b; >> c c = 4.2928e+004 P27 Q2:矩阵1234567 8 9A ????=??????,4 685563 2 2B ?? ?? =? ????? ,计算A B *,.A B *,并比较两者的区别。 >> A=[1 2 3;4 5 6;7 8 9];

>> B=[4 6 8;5 5 6;3 2 2]; >> A*B ans = 23 22 26 59 61 74 95 100 122 >> A.*B ans = 4 12 24 20 25 36 21 16 18 A*B表示A与B两矩阵相乘。 A.*B表示A与B对应元素相乘。 P34 Q2:编写一个转换成绩等级的程序,其中成绩等级转换标准为:考试分数在[] 90,100显示为优秀;分数在[) 0,60的 60,80的显示为及格;分数在[) 80,90的显示为良好;分数在[) 显示为不及格。 if x>=90 disp('优秀'); elseif x>=80 disp('良好'); elseif x>=60 disp('及格'); else disp('不及格'); end >> x=85 x = 85 良好

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安装常见问题解决方案

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章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径?

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课后习题解答第二章doc

第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象? 3/7+0.1; sym(3/7+0.1); sym('3/7+0.1'); vpa(sym(3/7+0.1)) 〖目的〗 ●不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+0.1 c2=sym(3/7+0.1) c3=sym('3/7+0.1') c4=vpa(sym(3/7+0.1)) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = 0.5286 c2 = 37/70 c3 = 0.52857142857142857142857142857143 c4 = 0.52857142857142857142857142857143 Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 ●理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1) ans = a

symvar(sym('z*exp(j*th)'),1) ans = z 3 求以下两个方程的解 (1)试写出求三阶方程05.443 =-x 正实根的程序。注意:只要正实根,不要出现其他根。 (2)试求二阶方程022=+-a ax x 在0>a 时的根。 〖目的〗 ● 体验变量限定假设的影响 〖解答〗 (1)求三阶方程05.443 =-x 正实根 reset(symengine) %确保下面操作不受前面指令运作的影响 syms x positive solve(x^3-44.5) ans = (2^(2/3)*89^(1/3))/2 (2)求五阶方程02 2 =+-a ax x 的实根 syms a positive %注意:关于x 的假设没有去除 solve(x^2-a*x+a^2) Warning: Explicit solution could not be found. > In solve at 83 ans = [ empty sym ] syms x clear syms a positive solve(x^2-a*x+a^2) ans = a/2 + (3^(1/2)*a*i)/2 a/2 - (3^(1/2)*a*i)/2 4 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。 a =@, b = sym( @ ), c = sym( @ ,' d ' ), d = sym( '@ ' ) 在此,@ 分别代表具体数值 7/3 , pi/3 , pi*3^(1/3) ;而异同通过vpa(abs(a-d)) , vpa(abs(b-d)) , vpa(abs(c-d))等来观察。 〖目的〗 ● 理解准确符号数值的创建法。 ● 高精度误差的观察。 〖解答〗 (1)x=7/3 x=7/3;a=x,b=sym(x),c=sym(x,'d'),d=sym('7/3'), a =

基于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习题及答案(2)

第1章MATLAB概论 1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MA TLAB系统由那些部分组成? MATLAB系统主要由开发环境、MA TLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

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课后习题答案

第4章数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff 或数值梯度gradient指令计算)(t y'曲线绘制 y',然后把)(t y和)(t 在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得) 〖目的〗 ●强调:要非常慎用数值导数计算。 ●练习mat数据文件中数据的获取。 ●实验数据求导的后果 ●把两条曲线绘制在同一图上的一种方法。 〖解答〗 (1)从数据文件获得数据的指令 假如prob_data401.mat文件在当前目录或搜索路径上 clear load prob_data401.mat (2)用diff求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意yc的长度将比y短1 plot(t,y,'b',t(2:end),yc,'r') (3)用gradent求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt;

plot(t,y,'b',t,yc,'r') grid on 〖说明〗 ● 不到万不得已,不要进行数值求导。 ● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级 以上。 ● 求导会使数据中原有的噪声放大。 2 采用数值计算方法,画出dt t t x y x ? =0 sin )(在]10 ,0[区间曲线,并计算)5.4(y 。 〖提示〗 ● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。 〖目的〗 ● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。 〖解答〗 dt=1e-4; t=0:dt:10; t=t+(t==0)*eps; f=sin(t)./t; s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==4.5); s45=s(ii) s45 =

相关文档
最新文档