
MATLAB是一门计算机编程语言,取名来源于Matrix Laboratory,本意是专门以矩阵的方式来处理计算机数据,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,使其越来越受到人们的喜爱,工具箱越来越多,应用范围也越来越广泛。MATLAB的发展历史见下表1-1。(年份不详的请知道的网友补充。)时间
版本
1985 10
1986 20(含控制系统工具箱)
1988 39
1993 40(含Simulink10)
1994 42(含simulink20)
不详 43
不详 53
2000 60(含Simulink40)
2001 61(含Simulink41)
不详 621
2003 65
11 安装
MATLAB的安装非常简单,这里以Windows版本6为例。运行setup后,输入正确的序列号,选择好安装路径和安装的模块,几乎是一直回车就可以了。这里有一点要注意的是,由于不同 *** 作系统设置,可能会出现一些意外错误,而且越高版本的MATLAB对计算机系统的要求也越高,如61版本要求至少64M内存,最好128M。所以根据自身情况选择适合的版本安装,最好还要在 *** 作系统初安装后就安装,避免出现意外。
12 运行
MATLAB的启动运行:#:\MATLAB6p1\bin\win32\matlabexe(其中#为安装盘符。)但一般安装完毕后会在安装目录下有一个快捷运行方式。
MATLAB启动后显示的窗口称为命令窗口,提示符为“>>”。一般可以在命令窗口中直接进行简单的算术运算和函数调用。如果重复输入一组表达式或计算复杂,则可以定义程序文件来执行达到目的。程序文件扩展名为“m”,以文本文件形式保存。有两种方式运行程序文件:一是直接在MATLAB命令窗口输入文件名,二是选择File->Open打开m文件,d出的窗口为MATLAB编辑器。这时可选择它的Debug菜单的Run子菜单运行。
13 帮助文件
学习MATLAB软件最好的教材是它的帮助文件。只要硬盘容量够大,极力推荐安装完整的帮助文档,即使你对阅读英文不是很有信心,但我相信其足够的实例还是能让你对要查询的命令函数有一定的了解的。有两种方法取得帮助信息:一是直接在命令窗口输入>>help 函数名;如help imread,会得到相应函数的有关帮助信息。二是在帮助窗口中查找相应信息。不同版本的帮助菜单界面有所不同,这只能依赖于你自己去熟悉了。但总体上都和windows的界面具有相似的处理过程。
14 MATLAB所定义的特殊变量及其意义变量名 意义
help 在线帮助命令, 如用help plot调用命令函数plot的帮助说明。
who 列出所有定义过的变量名称
ans 最近的计算结果的变量名
eps MATLAB定义的正的极小值=22204e-16
pi π值314159265
inf ∞值,无限大
NaN 非数
15 MATLAB中的运算符和特殊字符说明符号
符号用途说明
+ 加
- 减
* 点乘 详细说明help arith
* 矩阵相乘
^ 矩阵求幂
^ 点幂
\ 左除 详细说明help slash
/ 右除
\ 点左除
/ 点右除
kron 张量积 详细说明help kron
, 作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来
; (a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果
(b)在创建矩阵的语句中指示一行元素的结束,例如m=[x y z;i j k]
: (a)创建向量的表达式分隔符,如x=a:b:c
(b)a(:,j)表示j列的所有行元素;a(i,:)表示i行的所有列元素;a(1:3,4)表示第四列的第1行至第3行元素
() 圆括号
〔〕 创建数组、向量、矩阵或字符串(字母型)
{} 创建单元矩阵(cell array)或结构(struct)
% 注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。
' (a)定义字符串用
(b)向量或矩阵的共轭转置符
' 一般转置符
表示MATLAB表达式继续到下一行,增强代码可读性
= 赋值符号
== 等于关系运算符
<,> 小于,大于关系运算符 详细说明help relop
& 逻辑与
| 逻辑或
~ 逻辑非
xor 逻辑异或
我和你说说吧,先说基本函数:
fft2是求傅里叶变换;
fftshift是把变换后的图像转置,让非零值转到中心,好观察。
real就是求实部;
imag就是求虚部;
你知道经过傅里叶变换原来的空间域转到频域上了吧?
频域的概念是有实部有虚部的是吧,那你怎么能在平面上表示出来呢?
就用到了复数里的几个概念:
一个是虚部实部的平方和均值(sqrt( RRfdp1^2+IIfdp1^2);)
在一个就是夹角问题(b=angle(fftI);)
这个知识高数都有,我就不用说了吧?
至于a=(a-min(min(a)))/(max(max(a))-min(min(a)))225;
我觉得就是一个圆滑函数,比如235536我想让它变成240
就是乘以圆滑系数,再乘以225。
max(max(a))是求矩阵a里的最大的那个像素值。
希望你掌握好的学习方法,分析程序如果看不懂的话可以一行行的运行,通过workspace找到分步运行的结果,具体分析。
最后感慨一句:百度知道不是赚钱的地方,分多分少不是衡量知识的标准。我助人为乐我快乐,积分又不能换钱,要那么多干嘛。
1 默认情况下,M函数文件中定义及使用的变量都是局部变量只在本函数的工作区内有效,一旦退出该函数,即为无效变量,所以程序如果写成函数不用担心会混。
2命令行或M命令文件中定义和使用的变量都是全局变量,退出命令行后仍有效,如果怕混可以再程序的开头加上 clear 命令。
对哈,你是不放回,还是放回的呀,如果是非放回的是可以算的。假设每次取都是次数与d(n+1)的行数相等,即第n次总是取第n行的球,只要i不停的在d数组中变动,还是能满足楼主的条件的:
p=sym(zeros(70,1))
p(1)=1/70
d=sym(zeros(70,1))
d(50)=1
for n=[1:69]
p(n+1)=p(n)+1/(n+1)[d(n+1)-p(n)]
end
我不知道你算的是什么概率,不过这个概率和不为1,原因很简单,因为
d(n+1)-p(n)很多情况下是负数,所以p(n+1)很多情况下是小于p(n)的,除非取到第i球(我设置i=50,直接写i不能非常难讨论了)时d(n+1)-p(n)才是正值,p(n+1)大于p(n)。
也可能是我理解楼主的问题不到位,忘各位不吝赐教!答案如下: 1/70
1/70
1/140
1/210
1/280
1/350
1/420
1/490
1/560
1/630
1/700
1/770
1/840
1/910
1/980
1/1050
1/1120
1/1190
1/1260
1/1330
1/1400
1/1470
1/1540
1/1610
1/1680
1/1750
1/1820
1/1890
1/1960
1/2030
1/2100
1/2170
1/2240
1/2310
1/2380
1/2450
1/2520
1/2590
1/2660
1/2730
1/2800
1/2870
1/2940
1/3010
1/3080
1/3150
1/3220
1/3290
1/3360
1/3430
71/3500 第五十行
71/3570
71/3640
71/3710
71/3780
71/3850
71/3920
71/3990
71/4060
71/4130
71/4200
71/4270
71/4340
71/4410
71/4480
71/4550
71/4620
71/4690
71/4760
71/4830
71/4900由此可见p(n)=1/n70(n<i)时,p(n)=71/n70(n>=i)时
不对的。变量是数值计算的基本单元,matlab与其他高级语言不同,变量使用时无需事先定义,其名称就是第一次和发出显示的名称,因此用起来很便捷。matlab变量不可取名为001xk。变量名区分字母大小写。变量名必须以英文字母开头。变量名长度不得超过最大长度限制,超过的部分将被忽略。一些关键字不可以作为变量名:for,end,if等。
以上就是关于MATLAB是什么全部的内容,包括:MATLAB是什么、Matlab数字图像处理,要求详细解释代码,每个函数都要解释.这个是对图像求幅值谱和相位谱,并对其进行重构.、Matlab同时跑多个程序,如果这多个程序中有些变量名字是一样的,运算过程中会不会混等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)