MATLAB 基本语法

合集下载

matlab基本语法

matlab基本语法

Matlab基本操作及常用函数■ 基本操作; % 分号: 禁止显示结果% % 注释, Ctrl+R 注释, Ctrl+T 取消注释%% % 定义块, Ctrl+Enter 仅运行本块代码%{ ... %} % 注释块... % 句尾...表示续行(使用三个以上的点...续行)clear XXX % 清除某个内存变量clear all; % 清空所有内存变量(可用工具栏)clc, home % 相同,清除命令窗口(可用工具栏)clf % 清除图形窗口(clear figure)ans % 最后计算结果(Python中为_)edit % 打开 M文件 编辑器guide % 打开 GUI文件 编辑器help plot % 查找plot()函数帮助exit, quit % 退出Matlab! % 执行DOS命令cd % 设置当前工作目录,缺省为'..\MATLAB\R2015a\bin' dir % 显示当前工作目录/指定目录下所有目录和文件 date % 获取当前日期now % 获取当前时间tic, toc % 启动和结束计时器■ 变量操作who % 查看内存变量(在工作空间中可以直接查看) whos x % 显示x的数据类型(变量详细信息)save % 将所有变量保存至缺省文件 matlab.mat save data.mat % 将所有变量保存至文件(注.mat可以省略) save data.mat a b c % 将变量a,b,c保存至文件(变量不能有逗号)load data.mat % 载入数据文件中所有变量load data.mat a b % 载入数据文件中指定变量■ 格式化数值显示方式format % 使用缺省值,相当于format shortformat short % 5位定点方式(四位小数),系统缺省方式format short e % 5位浮点方式(四位小数加科学计数法)format short g % 5位自适应方式format long % 15位定点方式(十四位小数)format long e % 15位浮点方式(十四位小数加科学计数法) format long g % 15位自适应方式format bank % 银行方式(两位小数)format rat % 近似有理数显示(分数表示),相当于rats(x)format compact % 无空行显示format loose % 有空行显示注:系统缺省设置为 format loose(空行显示),如需设置为无空行显示,需进行以下操作: Preference ‐> Command Windows ‐> Numeric disp = compact■ 数值操作syms x y % 定义变量,不能逗号(分大小写,长度不过19字符x = 2e‐3或2E‐3 % 浮点数默认双精度,单精数必须single()转换x = 2 + 2i, y = 3j % 虚数(1i不能省略1,不影响自定义变量i,j使用)x ~= y % 注意py不等于为<>或!=x = input('enter num:') % 提示输入fprintf('%0.3f\n', pi) % %d整,%0.3f浮,%e科学计数,%g自动选择^ , sqrt(x) % 乘方开方(乘方与vb相同,与py的**方式不同)abs(x) % 绝对值或向量长exp(x) % 自然指数,e^xlog(x), log2(x), log10(x) % 自然对数ln(x),以2,10为底的对数round(x), fix(x) % 四舍五入取整,截位取整roundn(pi, ‐6) % 保留3位(命令行无法显示,变量窗口可显示)ceil(x), floor(x) % 天花板取最近大整数,地板取最近小整数rats(x) % 转成分数表示 ********a = mod(10,3); % 取余数a = mod(10,‐3); % 取补数a = max(x);b = min(x) % 取数组(列向量)的最大最小值[v, pos] = max(x) % 取数组(列向量)的最大值及位置sin(x), cos(x), tan(x) % 注意matlab使用弧度,不是角度!!asin(x), acos(x), atan(x) %sin(pi)不等于0, 而是<eps.sinh(x), cosh(x), tanh(x)asinh(x), acosh(x), atanh(x)常数:pi % 3.1415926...eps % 无穷小inf, ‐inf % 正无穷大,负无穷大nargin, nargout % 函数输入变量数,输出变量数intmax, intmin % int32的最小最大值realmin, realmax % double的最小最大值intmax, intmin('int32') % int/uint8,16,32,64的最大最小值realmax, realmin('double') % sigle,double的最大最小值nan % 非数值变量类型判断class(x) % 判断x变量类型isnan(x) % 判断x是否为非数值类型isinf(x) % 判断x是否为无穷数isfinite(x) % 判断x是否为有限数isnumeric(x) % 判断x是否为数值型(整型或浮点型)isinteger(x) % 判断x是否为整型isreal(x) % 判断x是否为实数isfloat(x) % 判断x是否为浮点数isa(x, 'integer') % 判断x数值类型:numeric,integer; int/uint8,16,32,64, single, double■ 类型转换str2num('123.456') % 类型转换:字串→数字(相当py中int,long,float)num2str(123.456) % 类型转换:数值→字串(相当py中str)num2str(pi,'%0.3f') % 带格式转换,类似sprintf()int2str(123) % 整数转字串,返回'123'(较少用)char([49 50 51]) % 类型转换:数值→字符(相当py中chr)int32('123') % 类型转换:字符→数值(相当py中ord)int32(123.456) % 强制转换:float→uint8(无int,long,float)注: mat无int,long,float型,数值输入默认double;数值类型为int/uint8,16,32,64,single,double十种;数值转换字串时将字串按字符数组处理,字符串的转换应该使用num2str,str2num;注: uint8自动将>255→255,<0→0,不需要再进行x(x>255)=255,x(x<0)=0判断!double(2)+int32(2) % double与int8,16,32,single运算结果降级double(2)*true % double与逻辑型,字符型计算仍为doublesingle(2)*true % single不能整数计算!与逻辑,字符型计算不变int8(2)+int32(2) × % 不同类型整数不能+ ‐ * / 运算■ 进制转换dec2bin(23,8) % 十进制转8位二进制(位数8可省略), 返回字符串 '00010111' bin2dec('1001') % 二进制转十进制,只能字符串输入, 返回doubledec2hex(10,3) % 十进制转16进制(位数3可省略),返回字符串 '00A'hex2dec('00A') % 16进制转十进制,只能字符串输入, 返回double■ 位操作A=7; B=5; % A=0111, B=0101bitand(A, B) % 按位与, ans=0101bitor(A,B) % 按位或, ans=0111bitxor(A,B) % 按位异或, ans=0010bitcmp(uint8(85)) % 按位取反, '0101 0101'返回'1010 1010'bitshift(2,2) % 移位M=magic(10)M1 = bitget(M,1) % 取8bit矩阵的最低位M1 = bitset(M,1,0) % 将矩阵最低位全部设置为0/1■ 字符串操作a = ' aa '; b='b b'; c='abcd'; % 字串采用单引号,py单双引号皆可d = 'we''re here'; % 字串中的'用双单引号''定义len = length(a) % 获取字串长度[r, len] = size(a) % 获取字串长度, r行数=1, len列数=字串长度x = [a, b, c] % [] 字符串连接 (不删空格,strcat的补充方式!)s1= {a, b, c}; s2={c, b, a}; % {} 字符串数组, 此时, class(a)=char, class(s1)=cells1(1)→cell, s1{1}→char % 注意: class(s1(1))=cell, class(s1{1})=charx = d(5:10); % 取子串x = d(end:‐1:1); % 字符串倒排x = strcat(a, b, c) % 字符串连接 (删除句尾空格),如果不想删除空白符,应使用[a,b,c]方式连接x = strcat(s1, s2) % 字符串数组连接 (不删空格)x = blanks(10) % 生成10个空格的字符串x = deblank(a) % 去掉后续空格x = strtrim(a) % 去掉开头和结尾的空白(空格,制表,换行)isstr(x) % 测试是否为字符串isletter(x) % 测试是否为字符isspace(x) % 测试是否为空格all(isstrprop(ss, 'alpha')) % 测试是否全为字母all(isstrprop(ss, 'digit')) % 测试是否全为数字all(isstrprop(ss, 'alphanum')) % 测试是否全为数字字母strcmp(a, b) % 测试字符串是否相同strrep(c, 'c', 'xx') % 将字符串c中的c字符替换为xx,返回'abxxd'strtok(c, 'c') % 取字符串c中c字符之前的部分,返回'ab'disp('需显示的字符串') % 直接输出sprintf('PI=%0.7f', pi) % 格式化输出■ 字符串数组(元胞数组)ss={'a', '', 'b'} % 定义字符串数组,不能用[](成为字符串)xx=[ss, ss] % 元胞数组合并,不能用{}(成为复合元胞数组)ss(cellfun('isempty', ss))=[] % 删除字符串数组中的空元素regexp(ss, '.{3}', 'match') % 将字符串按3个字符分离,去掉结尾不足3个字符的 regexp(ss, '.{3}', 'split') % 获取结尾不足3个字符的sp=[regexp(ss, '.{3}', 'match'), regexp(ss, '.{3}', 'split')]; sp(cellfun('isempty', sp))=[]ss = 'adfasdfasf' % 定义字符串ss = [ss,blanks(abs(mod(length(ss),‐3)))] % 不足3位用空白补充sp = regexp(ss, '.{3}', 'match') % 按3个字符分离ss = '123.4,567.8,901.2' % 定义字符串sp = regexp(ss, ',', 'split') % 字符串分离■ 时间操作ss = '2014‐04‐01';d1 = datenum(ss); % 将日期字符串转换为天数(自0000年起)d2 = datestr(ss); % 将日期串转换为字串(缺省为'01‐Apr‐2014')d3 = datevec(ss); % 将日期串转为日期向量[年, 月, 日, 时, 分, 秒]n = today‐datenum('2013‐12‐31') % 计算日期串的年天数n = weeknum('2014‐04‐01'); % 计算日期串的年周数n = weekday('2014‐04‐01'); % 计算日期串的星期数 (注意周日为1, 周一为2...) today; =datenum(date) % 获取当前日期的天数 (整型)date; =datestr(today) % 获取当前日期的字符串datevec(date); =datevec(today) % 整型向量(无时分秒), [2014, 4, 1, 0, 0, 0]format shortgclock; % 获取当前时间矢量(有时分秒)now; % 获取当前时间的天数(有时分秒)■ 逻辑操作& | ~ % 标量/数组/矩阵的与或非(python采用and, or, not)&& || % 标量(表达式)的与或, && 左边不成立不计算右边!!if(a && b/a>0), ... % 可避免被0除■ 向量/数组定义x = [1 2 3 4 5] % 数组使用[]标识(元素之间采用空格或逗号分隔)x = 1:12 % 同 [1:12]中括号可省略,即 1,2,3...10(不同于python通过range()产生数组)x = 1:2:12 % 通过(起点,步长,终点)创建数组,即1,3,5,7,9,11,注意结尾不是10!x = linspace(1, 10) % 不指定步长,缺省间隔数为100x = linspace(1, 10, 10) % 通过(起点,终点,个数)创建数组,返回1,2...10;(0,10,11)返回0,1 (10)x = logspace(1, 10) % 不指定步长,缺省间隔数为50x = logspace(1, 10, 2) % 通过(起点,终点,个数)创建线性数组矩阵定义x = [1 2 3; 4, 5, 6; 7, 8 9] % 单行输入(元素之间采用空格或逗号分隔,行间采用分号或回车分隔)x = [1 2 3 % 换行输入(矩阵[]逗号可省略,但参数()逗号不能省)4 5 6 ]x = reshape(1:12, 3, 4) % 矩阵重排为3×4。注意:m*n必须与原矩阵相同,重排顺序为先由上至下、再由左至右x = reshape(x, 1, []) % 重排为行向量(另一维可省略!!)x = reshape(x, [], 1) % 重排为列向量, 相当于 x(:);A = repmat(x, 5, 6) % 重复矩阵生成新矩阵常用矩阵zeros(n), zeros(m, n) % n阶0方阵,m×n全0的double矩阵ones(n), ones(m, n) % n阶1方阵,m×n全1的double矩阵false(n), false(m, n) % n阶1方阵,m×n全0的logical矩阵true(n), true(m, n) % n阶1方阵,m×n全1的logical矩阵eye(n), eye(m, n) % n阶单位阵,m×n单位阵rand(m, n), randn(m, n) % m×n随机阵(0‐1),正态分布矩阵,省略1参数时生成方阵 randperm(n) % 产生 1‐n 随机排列数组(Permutation)■ 数组、矩阵操作向量(一维)操作:v = [1 2 3 4 5]'; % 注意,带参数转置应采用.',否则共轭转置;v(2)=0 % 取数组中的元素(数组下标从1开始)v(3:5); v(end‐2:end) % 取数组的前3个、后3个元素v(3, 5); v([3, 5]) % 取第3行第5列元素; 取下标为3, 5的两个元素v(3:5)=[] % 删除第3、4、5个元素v = v(:) % 将向量/矩阵转为"列向量",注: 在min(),max()等函数中用比较方便!! v = v(1:end) % 将向量/矩阵转为"行向量"v(v>2); % 取部分数值组成列向量;any(v); % 数组全为1返回1, 否则返回0(忽略Nan,不作为0)注: v>2 返回[0 0 1 1 1]布尔数组, find(v>2) 返回[3 4 5]下标数组;v(v>2), v(find(v>2)) 返回值相同, 但前者效率更高!A = reshape(1:12, 3, 4) % 向量转为矩阵[r,c] = size(A); % 返回矩阵 [行数, 列数]r = size(A, 1); % 返回矩阵的行数c = size(A, 2); % 返回矩阵的列数n = length(A); % 返回矩阵行列数最大值, 相当于 max(size(x));n = numel(A); % 返回元素总数,即r*c值n = nnz(A); % 返回非0元素总数;矩阵(二维)操作:x=rand(3, 3); % 生成3×3随机矩阵x(2, 3)=0 % 将第2行第3列设为0,如果没有,则增加该行或列x(2, :)=0; x(:, 3)=0 % 取某行、某列数值x(1, :)=0; x(end, :)=0 % 取第1行、最后一行x(:, 3)=0 % 将第3列全部为0,如果没有第3列,则增加该列x(:, 3)=[] % 删除第3列(注意不能单独删除某个元素,但可连删)矩阵分块组合b = [10 11 12][b; x], [x; b] % 矩阵上方、下方增加一行,注意用;分隔[x(1, :); b; x(2:3, :)] % 矩阵第2行插入一行[b', x], [x, b'] % 矩阵左边、右边增加一列,注意用,分隔[x(:, 1), b, x(:, 2:3)] % 矩阵第2列增加一列注意:增加行、列操作行列数应满足矩阵要求;x(:, [1 2 4]) % 取第1,2,4列x(:, [1 3 2 4]) % 按次序交换列(A只有4列)x([2 4], [3:5]) % 取A的第2、4行的3,4,5列(数列括号可省略,即A([2 4], 3:5)三维矩阵(多波段)操作:m = cat(3, x, x+1, x+2, x+3) % 通过二维矩阵构造4波段三维矩阵m(:, :, 1)=0 % 取第1波段矩阵zeros(size(m(:,:,1))) % 第1波段矩阵相同0矩阵,比直接赋0值快!!**** 特殊操作 **************A = (x>5) % 取所有大于5数值的二值矩阵v = x(x>5) % 取所有大于5数值组成列向量,剔除其它数值!!x(x>5) = 0 % 将矩阵中所有大于5数值=0,矩阵A尺寸不变!!注: 处理影像数组超限问题比较方便!!% 注意,uint8()可以自动处理x<0,x>255的数值!!v = unique(x) % 返回矩阵所有不重复元素组成列向量;实例: 剔除部分行列(参见矩阵分析部分)x = 31:51; % 构造21个数值数组r = length(x); r = 1:r; d=5; % 设置间隔数值A=x(mod(r,d)==0 ) % 每隔5个取值, 剔除其它数值B=x(r==1 | mod(r,d)==0 | r==length(r) ) % 每隔5个取值, 保留首尾, 剔除其它数值■ 稀疏矩阵满矩阵既浪费计算时间, 也浪费存储空间, 因此需要稀疏化;只有全部稀疏矩阵操作, 结果才是稀疏矩阵; 只要有一个矩阵是满矩阵, 结果就是满矩阵;A = diag(1:10); % 构建满矩阵B = sparse(A); % 将满矩阵转换为稀疏矩阵C = full(B); % 将稀疏矩阵转换为满矩阵B = sparse(10, 10); % 创建10×10全0矩阵B = sparse(1:10,1:10,11:20); % 设定系数矩阵(i,j)上的元素为v, i,j,v必须同维![i,j,v] = find(B); % 搜索矩阵的(i,j)和数值vv = nonzeros(B); % 获取矩阵非0元素(列向量)注:Mat数组定义使用[],操作使用(),不像python定义和操作均用[]。________________________________________■ M文件 = M函数 + M脚本1、M函数function [x, y] = func(i, j) % 基本函数形式% This func used for ... % H1 声明行% in = i, j; out = x, y % 详细帮助行 (键入help可以查看)if nargin == 1, ...; end % 判断输入参数个数if nargout ==1, ...; end % 判断输出参数个数function [a, b] = func2(c, d) % 子函数/嵌套函数....endend注1: M 函数必须保存为 func.m 文件, 且该文件必须在matlab的搜索路径中;注2: 一个函数文件只能有一个主函数, 其它函数为子函数, 嵌套函数, 匿名函数;注3: 不能在命令行、脚本文件中定义函数, 即不能在命令行窗口输入 function c =myfunc(a, b) ×错误!function [x, y] = func(i, j, varargiin) % 输入参数个数不定function [x, y, varargout] = func(i, j) % 输出参数个数不定for i=i:length(varargin) % 判断可变参数个数ss = ss + varargin{i} % 调用可变参数值endendfunction [y, x] = func(x) % 返回修改后的 x 数值global v1 v2 v3 % 函数、脚本中定义相同全局变量可互通(空格分隔)x = x+5; y = x.^2; % 改变 x 数值2、匿名函数 @()func1 = @() sin(pi/2) % 定义无参数匿名函数, >> func1()func2 = @(x, y) (sin(x)+cos(y)) % 定义多参数匿名函数, >> func2(pi/2, pi/3)func3 = @(x) func2(x).^2注: 不带()方式调用为查看函数, 如 >> func1 查看函数定义;3、内联函数 inline()func1 = inline('x.^2', 'x') % 定义内联函数, >> func1(2)注: matlab7以后建议使用 @() 代替 inline() 函数;4、函数句柄/别名 @arcsin = @asin % 定义asin()函数别名为arcsin()arcsin(sqrt(2)/2) % 相当于asin(sqrt(2)/2)■ 流程控制1、if 语句if(x>0), disp(x); end % 一行写入(条件用, 语句用;)if(x>0) disp(x); % 多行写入(条件语句括号可省略逗号)elseif(x==0) disp(x);else disp(x);end注: 能用逻辑数组的尽量不用 if 判断;2、switch 语句switch(x)case 0, disp(x); % 单值匹配可用(), 也可省略case{1, 3, 5}, disp(x); % 多值匹配采用{ }方式otherwiseend3、for 循环for i= 1:100000000, disp(i); end % 不初始化向量, 不会导致内存不足for i=[1:100000000], disp(i); end % 初始化向量, 内存不足!for i=[1, 3, 5] % 多行循环endfor i=[1, 3, 5; 2, 4, 6] % 循环方式为[1, 2]', [3, 4]', [5, 6]'i(2)‐i(1)end注: 能用数组处理的尽量不用 for 循环;4、while 循环while (条件), statement; endwhile(x>0) ...end注:循环语句使用continue进行下一循环,使用break终止循环,使用return退出m文件. ________________________________________■ 文件操作文件读写步骤: 打开文件 → 读写 → 关闭文件; 二制文件读写: fread(), fwrite(); 文本文件读写: fscanf(), fprintf()fp = fopen('e:\test.txt', 'rt'); % 打开文本文件A = fscanf(fp, '%c')'; % 一次读入所有文本(注意:%c包含空格,%s去掉空格)B = fscanf(fp, '%d,%d,%d', [3, inf])'; % 按行读入x,y,z,并生成二维矩阵(注意:按列输出,故结果需转置)fclose(fr); % 关闭文本文件A = rand(20,3);fp = fopen('e:\test.txt', 'wt'); % 打开文本文件fprintf(fp, '%0.3f, %0.3f, %0.3f\n', A'); % 写入x,y,z数据(注意:按列读取,故输入矩阵需转置) fclose(fr); % 关闭文本文件注: 文件打开方式: r 只读(必须存在), w 只写(不存在新建,存在则覆盖), a 添加(不存在新建,存在添加), r+ 可读写(必须存在), w+ 可读写(不存在新建,存在则覆盖), a+ 可读写可添加(不存在新建,存在添加); b 二制文件(缺省), t 文本文件(即必须 rt,wt,at);fp = fopen('e:\test.bmp'); % 打开二制文件(r,rb可省略)frewind(fp); BM = fread(fp, 2, '*char')'; % 读取为字符型(列方式,需转置) frewind(fp); BM = fread(fp, 1, '*uint16'); % 读取2字节为uint16型uint16('B') + bitshift(uint16('M'),8); % 同上,19778frewind(fp); BM = fread(fp, 1, 'uint16=>double'); % 读取2字节并转换为8字节 frewind(fp); A = fread(fp, 8, 'ubit1'); % 按1位读取,共读取8位,返回 0100 0010(翻转B的二制数)frewind(fp); A = fread(fp, 4, 'ubit2'); % 按2位读取,共读取8位,返回 2 0 0 1注: 二制文件读取精度可选: char/uchar; int/uint8,16,32,64; float32,64; bit/ubitN(1‐64);。

matlab基本语句及语法

matlab基本语句及语法

matlab基本语句及语法一、基本语法1. 变量定义与赋值:在MATLAB中,可以使用等号(=)将一个数值或表达式赋值给一个变量。

例如:a = 5; 表示将数值5赋值给变量a。

2. 注释:在MATLAB中,可以使用百分号(%)来添加注释,以便于代码的阅读和理解。

例如:% 这是一条注释。

3. 函数的定义与调用:在MATLAB中,可以使用关键字function 来定义函数,并使用函数名进行调用。

例如:function result = add(a, b) 表示定义了一个名为add的函数,该函数接受两个参数a 和b,并返回一个结果result。

4. 条件语句:在MATLAB中,可以使用if语句来实现条件判断。

例如:if a > b 表示如果a大于b,则执行if语句块中的代码。

5. 循环语句:在MATLAB中,可以使用for循环和while循环来实现循环操作。

例如:for i = 1:10 表示从1循环到10,每次循环中i 的值递增1。

6. 矩阵的定义与操作:在MATLAB中,可以使用方括号([])来定义矩阵,并使用各种运算符进行矩阵的操作。

例如:A = [1 2; 3 4] 表示定义了一个2x2的矩阵A。

7. 字符串的操作:在MATLAB中,可以使用单引号('')来定义字符串,并使用加号(+)来进行字符串的拼接。

例如:str = 'Hello' + 'World' 表示将字符串'Hello'和'World'进行拼接。

8. 文件的读写:在MATLAB中,可以使用fopen、fread、fwrite 等函数来进行文件的读写操作。

例如:fid = fopen('file.txt', 'w') 表示打开一个名为file.txt的文件,并以写入模式打开。

9. 图形绘制:在MATLAB中,可以使用plot、scatter、histogram等函数来进行图形的绘制。

matlab 标准写法

matlab 标准写法

matlab 标准写法一、简介MATLAB 是一种广泛应用于工程和科学领域的数学软件,它提供了丰富的数学函数和工具箱,方便用户进行数值计算、数据分析、图形可视化等任务。

为了提高代码的可读性、可维护性和可扩展性,本手册旨在提供 MATLAB 的标准写法,帮助用户更好地利用 MATLAB 工具进行科学计算。

二、基本语法1. 变量命名:变量名应使用小写字母、数字和下划线,避免使用特殊符号。

变量名应具有描述性,以便于理解代码的功能。

2. 注释:在代码中添加注释,有助于他人理解代码的功能和实现方式。

注释应以“%”开头,可采用单行或多行注释。

3. 矩阵和数组:在 MATLAB 中,矩阵和数组是常用的数据结构。

应使用矩阵运算符(如“*”、“+”、“-”等)进行矩阵运算,而不是使用算术运算符。

4. 函数定义:函数应以“function”开头,并指定输入和输出参数。

函数内部应使用“return”语句返回结果。

5. 文件操作:使用“fopen”、“fwrite”、“fread”等函数进行文件读写操作。

三、常用函数库MATLAB 提供了许多常用的函数库,如矩阵运算、数值计算、统计分析、图形可视化等。

以下是一些常用的函数库及其标准用法:1. 矩阵运算:如“*”表示矩阵乘法,“+”、“-”表示矩阵加法、减法等。

2. 数值计算:如“abs”表示绝对值函数,“log”表示对数函数等。

3. 统计分析:如“mean”、“std”表示平均值、标准差等统计函数。

4. 图形可视化:如“plot”、“scatter”表示绘制折线图、散点图等图形函数。

四、代码规范1. 缩进:使用四个空格作为缩进,避免使用制表符。

2. 注释:在代码中添加注释,以解释代码的功能和实现方式。

注释应以“%”开头。

3. 行长:代码行长不宜超过一定长度,一般建议不超过80个字符。

4. 变量命名:变量名应具有描述性,遵循MATLAB命名规范。

5. 函数命名:函数名应具有描述性,遵循MATLAB命名规范,并使用驼峰命名法。

matlab菜鸟教程

matlab菜鸟教程

matlab菜鸟教程Matlab是一种强大的数值计算和科学数据可视化软件。

它被广泛应用于工程、科学和金融等领域。

本教程将介绍Matlab的基本语法、常用函数和数据处理技巧,帮助初学者快速上手使用Matlab进行编程和数据分析。

1. Matlab环境搭建安装Matlab:在MathWorks官网下载并安装Matlab软件,按照向导进行安装。

打开Matlab:双击桌面上的Matlab图标或在开始菜单中找到Matlab并点击打开。

2. Matlab基本语法变量和常量:使用等号(=)将数值或表达式赋给变量。

例如:x = 5, y = sin(x)。

数据类型:Matlab支持多种数据类型,包括数值型、字符型和逻辑型等。

常用的数值类型有整数型、浮点型和复数型。

矩阵和数组:Matlab中的基本数据结构是矩阵和数组。

可以使用方括号([])定义矩阵和数组,并进行矩阵运算。

函数调用:Matlab提供了丰富的内置函数,可以直接调用进行数值计算、数据处理和图形绘制等操作。

条件语句:使用if语句进行条件判断,根据不同的条件执行不同的操作。

循环语句:使用for循环和while循环重复执行一段代码,根据循环条件来控制循环的执行次数。

3. Matlab常用函数数值计算:Matlab提供了多种数值计算函数,如sin、cos、exp、log等,用于计算三角函数、指数函数和对数函数等。

数据处理:Matlab提供了丰富的数据处理函数,如mean、sum、max、min等,用于计算数组的均值、总和、最大值和最小值等。

图形绘制:Matlab可以绘制各种类型的图形,如线图、散点图、柱状图和饼图等。

可以使用plot、scatter、bar、pie等函数进行图形绘制。

数据导入和导出:Matlab可以方便地导入和导出各种数据格式,如文本文件、Excel文件和图像文件等。

可以使用readtable、writetable、imread、imwrite等函数进行数据的读写操作。

matlab语法基础

matlab语法基础

matlab语法基础MATLAB是一种非常流行的科学计算工具,它被广泛用于工程、科学和金融等领域。

其语法基础作为学习和使用MATLAB的最基本要素,本文将详细介绍MATLAB语法基础。

MATLAB基础MATLAB语言是一种矩阵型语言,所有的变量和数据都被视为矩阵或向量。

MATLAB具有简单、易学以及高效的计算语言特点,被广泛应用于科学、数学、工程、数据处理等领域,是一种十分实用的工具。

1.变量在MATLAB中,可以通过变量存储各种类型的数据。

变量名可以是任何字母、数字和下划线的组合,并且大小写是不敏感的。

例如:a = 1; % 变量a存储整数1b = 'Hello World'; % 变量b存储字符串'Hello World'c = [1 2 3; 4 5 6]; % 变量c存储一个2×3的矩阵2.数组在MATLAB中,数组是特殊的矩阵。

可以使用如下语法来创建数组:a = [1 2 3 4 5];% 一维数组b = [1 2 3; 4 5 6; 7 8 9];% 二维数组3.矩阵运算MATLAB提供了一系列的矩阵运算函数,这些函数可以从多个矩阵中计算出一个新的矩阵。

常见的矩阵运算函数包括:% 全元素乘方A = [1 2; 3 4];B = A.^2;4.控制语句MATLAB中的控制语句也比较常见,包括:% if语句if score >= 60disp('及格');elsedisp('不及格');end% for循环for i = 1:10disp(i);end5.函数MATLAB中的函数是一种特殊的程序,用于完成一些特定的操作或计算,并且可以被其他程序调用。

函数可以接受输入,完成一系列操作,然后返回输出。

下面是一个简单的函数例子:function y = square(x)% 计算输入x的平方,并返回结果y = x^2;end在函数中,使用function关键字定义函数名和输入输出参数,最后使用end语句结束函数定义。

Matlab的基本语法和常用函数

Matlab的基本语法和常用函数

Matlab的基本语法和常用函数Matlab是一种非常强大且流行的数值计算软件,被广泛应用于科学研究、工程设计和数据分析等领域。

在本文中,我们将介绍Matlab的基本语法和常用函数,以帮助初学者快速上手并掌握此工具的基本使用方法。

一、Matlab的基本语法1. 变量和赋值:在Matlab中,可以使用任何有效的字符作为变量名。

要创建一个变量并赋值,只需使用等号(=)即可。

例如,将整数值10赋给变量a,可以使用以下语句:a = 102. 数值运算:Matlab支持基本的数值运算,如加法、减法、乘法和除法。

例如,要计算两个变量a和b的和,可以使用加法运算符(+):c = a + b3. 矩阵操作:Matlab是一种强大的矩阵计算工具,支持矩阵的创建、加减乘除运算以及转置等操作。

例如,要创建一个2x2的矩阵,并将其赋给变量A,可以使用以下语句:A = [1 2; 3 4]4. 条件语句:Matlab提供了条件语句用于根据不同的条件执行不同的操作。

常用的条件语句包括if语句和switch语句。

例如,要根据某个变量的值执行不同的操作,可以使用if语句:if a > 0disp('a is positive')elsedisp('a is negative or zero')end5. 循环语句:Matlab支持多种类型的循环语句,如for循环、while循环和do-while循环。

例如,要计算1到10的累加和,可以使用for循环:sum = 0;for i = 1:10sum = sum + i;end二、Matlab的常用函数1. plot函数:plot函数用于绘制二维曲线图。

通过提供横坐标和纵坐标的向量,可以绘制出对应的曲线图。

例如,要绘制函数y = sin(x)的图形,可以使用以下语句:x = linspace(0, 2*pi, 100);y = sin(x);plot(x, y)2. linspace函数:linspace函数用于生成一个线性间隔的向量。

matlab语法

matlab语法

matlab语法MATLAB是一种强大而又灵活的计算机语言,最初由美国的研究机构开发而成,并已得到广泛应用。

在科学、工程、金融和医学等领域应用广泛。

MATLAB语法相对来说比较容易学习,本文将分步骤介绍MATLAB语法的相关内容。

1. 基础数学运算MATLAB最基础的数学运算包括加法、减法、乘法、除法和求幂,可以使用如下的操作符实现:加法: +减法: -乘法: *除法: /求幂: ^例如,要计算3的4次幂,可以输入3^4,计算结果会显示在MATLAB命令窗口中。

2. 变量和数据类型在MATLAB中,可以使用变量来存储数值和其他数据类型。

变量名可以是字母、数字或下划线,以字母开头。

MATLAB支持的数据类型包括数值、字符和逻辑值。

数值类型包括整数和浮点数,例如:整数:5浮点数:3.14字符类型用单引号括起来表示,例如:字符:'Hello World!'逻辑类型包括true和false。

3. 条件语句在MATLAB中,可以使用条件语句来根据条件执行不同的代码块。

常见的条件语句包括if语句和switch语句。

if语句根据一个条件判断执行哪些代码块,例如:if x > 0disp('x is positive')elseif x == 0disp('x is zero')elsedisp('x is negative')endswitch语句根据一个变量的值执行不同的代码块,例如:switch xcase 1disp('x is equal to 1')case 2disp('x is equal to 2')otherwisedisp('x is not equal to 1 or 2')end4. 循环语句在MATLAB中,可以使用循环语句来重复执行一组代码。

常见的循环语句包括for循环和while循环。

MATLAB的基本语法

MATLAB的基本语法
3
4、四则运算与幂运算
+ - * \ / ^.
*
.\
./
.^
只有维数相同的矩阵才能进行加减运算。
注意只有当两个矩阵中前一个矩阵的列数和后一个 矩阵的行数相同时,才可以进行乘法运算。
矩阵右除a\b运算等效于求a*x=b的解;而左除a/b 等效于求x*b=a的解。(与常数除法对照,一样的)
只有方阵才可以求幂。
explode = [0 1 0 0 0];
感谢下 载
二、常量
常量表达形式:-3.2、-.2、3.2、3.2e-3、3-3i、3-3j…
注:➢3.2e-3是科学记数法;
➢规范的复数表达形式是3-3i,如果用j表示虚部, 将自动转换为i。
系统预定义了一些常量:
pi:圆周率
eps:计算机的最小数
inf:无
realmin:最小正实数
realmax:最大正实数
a=
1
4
>> b=[1+2i 2-7 i]'
b=
1.0000 - 2. 0000i
2
5
36
2.0000 + 7. 0000i
>> b=[1+2i 2-7 i].'
b=
1.0000 + 2.
2、提取矩阵中的元素
A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第n
>> a=linspace(1,10,10) a=
1 2 3 4 5 6 7 8 9 10
(3)a=logspace(n1,n2,n) 在对数空间上,行向量的值从10n1到10n2,数据 个数为n,缺省n为50。

matlab语法规则

matlab语法规则

matlab语法规则摘要:一、Matlab 简介二、Matlab 的基本语法规则1.变量与常量2.运算符与表达式3.控制结构4.函数与函数句柄5.数据类型与数据转换6.矩阵与向量操作7.绘图与可视化8.M 文件与脚本编写三、Matlab 编程实践1.常用函数与工具箱2.图形用户界面(GUI) 设计3.Matlab 编程技巧与优化四、Matlab 在工程与科研中的应用1.数学建模与计算2.信号处理与通信3.图像处理与计算机视觉4.控制系统与自动化5.其他领域应用正文:Matlab 是一种广泛应用于科学计算、工程设计以及数据分析的编程语言。

它具有强大的数值计算能力、丰富的函数库和良好的图形功能,使得Matlab 成为了许多科研人员和工程师的得力助手。

本文将对Matlab 的语法规则进行简要介绍,并探讨其在实际应用中的优势。

一、Matlab 简介Matlab(Matrix Laboratory)起初由美国加州大学洛杉矶分校(UCLA)的Cleve Moler 教授团队开发,现在由MathWorks 公司进行维护和更新。

Matlab 的主要特点包括易于学习的语法、强大的矩阵运算能力以及丰富的工具箱。

二、Matlab 的基本语法规则1.变量与常量:Matlab 中的变量名需遵循一定的命名规则,如只能包含字母、数字和下划线,且不能以数字开头。

常量分为数值常量、字符串常量和逻辑常量。

2.运算符与表达式:Matlab 支持各种数学运算符,如算术运算符、关系运算符和逻辑运算符。

运算符的优先级遵循一定的规则。

3.控制结构:Matlab 提供了丰富的控制结构,如条件语句(if-else)、循环语句(for、while)以及开关语句(switch)等。

4.函数与函数句柄:Matlab 中的函数分为内置函数和自定义函数。

自定义函数可以通过M 文件进行编写,并可以通过函数句柄进行调用。

5.数据类型与数据转换:Matlab 支持多种数据类型,如数值型、字符型、逻辑型等。

matlab语法规则

matlab语法规则

matlab语法规则摘要:1.MATLAB简介2.MATLAB基本语法规则3.变量与数据类型4.运算符与表达式5.流程控制6.函数与程序设计7.矩阵操作与线性方程组求解8.图形绘制与可视化9.实例演示正文:一、MATLAB简介MATLAB是一种高性能的科学计算软件,广泛应用于数学计算、算法开发、数据分析、工程仿真等领域。

它具有丰富的函数库、简洁的语法规则以及强大的可视化功能,为科研和工程人员提供了便捷的计算工具。

二、MATLAB基本语法规则1.命令行输入:在MATLAB中,用户可以通过命令行输入指令,进行各种操作。

例如:`x = 1+2` 用于计算1+2的结果,并将结果赋值给变量x。

2.变量名:变量名需遵循一定的命名规则,例如:变量名不能包含空格、特殊字符,长度不超过63个字符等。

变量名区分大小写。

3.数据类型:MATLAB支持多种数据类型,如整型(int)、浮点型(float)、字符型(char)、逻辑型(logical)等。

4.运算符与表达式:MATLAB支持常见的数学运算符,如加、减、乘、除等。

此外,还支持求幂、求反正切等运算。

例如:`y = sin(x)` 用于计算x的正弦值。

三、变量与数据类型1.变量的创建:使用赋值运算符(=)创建变量。

如:`x = 10;` 创建一个名为x的整型变量,并将其值设为10。

2.数据类型的转换:使用`type()`函数查看变量类型,使用`cast()`函数进行数据类型转换。

例如:`cast(x, "double")`将整型变量x转换为双精度浮点型。

四、运算符与表达式1.运算符:包括算术运算符、关系运算符、逻辑运算符等。

2.表达式:由变量、常数、运算符组成的式子。

如:`x + y * z` 用于计算x、y、z三者的和。

五、流程控制1.条件语句:使用`if`、`elseif`、`else`实现条件判断。

2.循环语句:使用`for`、`while`进行循环操作。

matlab基本操作和语法

matlab基本操作和语法

matlab基本操作和语法MATLAB是美国MathWorks公司出品的商业数学软件,是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,该软件可在几乎所有计算机平台上运行。

MATLAB主要用于矩阵运算、绘图和对数据进行分析。

它能够进行离散数学、统计分析、数据可视化、数值分析和程序设计等操作。

MATLAB基本操作和语法主要包括:1、输入输出操作:这是MATLAB操作的基础,用户可以使用输入和输出操作来获取和显示算式、数据和结果。

2、变量定义:用户可以使用MATLAB对变量进行定义。

定义变量需要用到:=,例如x=1,表示定义变量x,值为1。

3、算数运算:MATLAB支持常用的四则运算,包括加减乘除、求平方根等,$\plusminus$,*,/和^这几个符号表示加减乘除和求平方根操作,MATLAB也支持数学函数,例如sin()函数,表示正弦函数。

4、矩阵运算:MATLAB支持矩阵运算,定义矩阵的语法:[数字1,数字2;数字3,数字4],冒号表示行分割,逗号表示列分割。

矩阵的运算和四则运算一样,只是使用的是^代表求矩阵的乘方。

5、循环控制:MATLAB支持while、for、if等结构的循环控制,可以使得程序执行更有条理和规律。

6、文件操作:MATLAB支持程序的文件操作,用户可以用来生成、读取和处理存储在磁盘上的文件数据。

7、图形操作:MATLAB支持各种图形操作,可以使用少量的语句生成非常有趣创新的图形。

综上,MATLAB的基本操作和语法可以帮助程序员更好的使用MATLAB进行编程以及对复杂的数据进行分析和处理。

因此,要想更好的掌握MATLAB,需要熟练掌握上述基础操作和语法。

第2章 MATLAB的基本语法(1)

第2章  MATLAB的基本语法(1)

handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vandermond e矩阵 Wilkinson’s 特征值测试 矩阵
• 这几个函数的调用格式相似,下面以产生零矩阵 的zeros函数为例进行说明。其调用格式是:
zeros(m) 产生m×m零矩阵
zeros(m,n) 产生m×n零矩阵。 zeros(size(A)) 产生与矩阵A同样大小的零矩阵
• 相关的函数有:length(A)给出行数和列数中的较 大者,即length(A)=max(size(A));ndims(A)给出 A的维数。
1/0
Inf (1/0)
Warning: Divide by zero. ans =
Inf
NaN (0/0,0*Inf,Inf/Inf)
Inf/Inf ans = NaN
ans pi Inf NaN i或j Nargin nargout realmax realmin flops eps
基本赋值矩阵
MATLAB中所有的运算符和函数对复数 有效
f=sqrt(1+2i) f=
1.2720 + 0.7862i
>> f*f ans =
1.0000 + 2.0000i
变量检查
在调试程序时,要检查工作空间中的 变量及其阶数
变量检查用who命令
who
Your variables are:

matlab基本语法

matlab基本语法

MATLAB简介MATLAB(MATrix LABoratory,即矩阵实验室)是MathWork公司推出的一套高效率的数值计算和可视化软件。

MATLAB是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。

它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。

MATLAB语言之所以如此受人推崇是因为它有如下这些优点:1.编程简单使用方便MATLAB的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。

因此,在MATLAB环境下,数组的操作与数的操作一样简单。

MATLAB的矩阵和向量操作功能是其他语言无法比拟的。

2.函数库可任意扩充由于MATLAB语言库函数与用户文件的形式相同,所以用户文件可以像库函数一样随意调用。

所以用户可根据自己的需要任意扩充函数库。

3.语言简单内涵丰富MATLAB语言中最重要的成分是函数,其一般形式为:Function [a,b,c…]=fun(d,e,f…)其中,fun是自定义的函数名,只要不与库函数名相重,并且符合字符串的书写规则即可。

这里的函数既可以是数学上的函数,也可以是程序块或子程序,内涵十分丰富。

每个函数建立一个同名的M文件,如上述函数的文件名为fun.m。

这种文件简单、短小、高效,并且便于调试。

4.简便的绘图功能MATLAB具有二维和三维绘图功能,使用方法十分简便。

而且用户可以根据需要在坐标图上加标题。

坐标轴标记。

文本注释及栅格等,也可一指定图线形式(如实线、虚线等)和颜色,也可以在同一张图上画不同函数的曲线,对于曲面图还可以画出等高线。

5.丰富的工具箱由于MATLAB的开放性,许多领域的专家都为MATLAB编写了各种程序工具箱。

这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。

第2章MATLAB的基本语法课件

第2章MATLAB的基本语法课件

handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vanderm阵
此外,常用的函数还有reshape(A,m,n),它在 矩阵总元素保持不变的前提下,将矩阵A重新 排成m×n的二维矩阵。
4. 建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。 例如
A=[1 2 3;4 5 6;7 8 9]; C=[A,eye(size(A)); ones(size(A)),A]
C=
3. 内存变量文件 ❖利用MAT文件(.mat)可以把当前MATLAB
工作空间中的一些有用变量长久地保留下 来。
❖MAT文件的生成和装入由save和load命令 来完成。常用格式为:
save 文件名 [变量名表] [-append][-ascii]
load 文件名 [变量名表] [-ascii]
2.3 MATLAB矩阵
• 数据输出时用户可以用format命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符
• 注意,format命令只影响数据输出格式,而 不影响数据的计算和存储。
2.2.4 预定义变量
在MATLAB工作空间中,还驻留几个由 系统本身定义的变量。它们有特定的含 义,在使用时,应尽量避免对这些变量 重新赋值。
❖ 变量的元素用圆括号“( )”中的数字 (下标)表示。一维矩阵(数组)中的
元素用一个下标表示;二维矩阵用两个 下标表示,以逗号分开

Matlab_教程(基本语法)

Matlab_教程(基本语法)

矩阵的生成
输入矩阵时要以”[ ]“为标识,同行元 素之间可用空格或”,“分隔,行与行之 间要用”;“或回车符分隔,若不想看到 中间结果,可以用”;“结束。 >> a=[1 2 3;1 ,1 1;4,5 6] a= 1 2 3 1 1 1 4 5 6 >>
矩阵的运算
• 矩阵的加和减 >> a=[1 2 3;1 ,1 1;4,5 6]; >> b=[3 4 5;1 2 1;2 3 1]; >> c=a+b c= 4 6 8 2 3 2 6 8 7
3. 点积 dot(a,b)返回向量a和b的数量点积。 a和b必须同维。 >> a=[1 2 3] >> b=[3 4 5] >> dot(a,b) ans = 26
4.叉积 cross(a,b)返回向量a和b的叉积向量。 a,b必须为三维向量。 >> a=[1 2 3] >> b=[3 4 5] >> cross(a,b) ans = -2 4 -2
用以下的行向量表示
P [a0 , a1 ,, an1 , an ]
这样就把多项式问题转化为向量问题
【例如】输入多项式 x3 5x 2 6 x 33 >> p=[1 -5 6 -33]; >> poly2sym(p) ans = x^3 - 5*x^2 + 6*x – 33 %其中poly2sym是符号工具箱中的函数, 可将多项式向量表示为符号多项式的形式
2.矩阵的行列式运算 >> a1=det(a) a1 = -85 3.秩函数 >> rank(a) ans = 4

matlab的基本语法总结

matlab的基本语法总结

matlab的基本语法总结
MATLAB的基本语法总结如下:
1. 变量的定义和赋值:在MATLAB中,可以使用等号(=)将一个值赋给一个变量,如:a = 5。

2. 数据类型:MATLAB支持多种数据类型,包括数值型(如double、int、single等)、字符型、逻辑型等。

3. 数组和矩阵:MATLAB中的基本数据结构是矩阵,可以用方括号([])定义矩阵,如:A = [1 2 3; 4 5 6]。

4. 矩阵运算:可以对矩阵进行各种运算,如加法、减法、乘法等,使用对应的运算符(+、-、
*等)即可。

5. 控制结构:MATLAB中有多种控制结构,包括条件语句(if-else)、循环语句(for、while)、switch语句等,用于控制程序的执行流程。

6. 函数和脚本:MATLAB中可以定义函数和脚本文件。

函数是一段可重复使用的代码,可以
接受输入参数并返回输出结果;脚本是一系列的MATLAB命令,按顺序执行。

7. 图形绘制:MATLAB具有强大的图形绘制功能,可以绘制散点图、折线图、曲线图等,通
过plot、scatter、figure等命令实现。

8. 文件的读写:MATLAB可以读写各种文件,包括文本文件、图像文件等,使用相关的函数(如fopen、fwrite、fread等)进行文件操作。

9. 数学函数和工具箱:MATLAB提供了丰富的数学函数和工具箱,可以进行各种数值计算、
统计分析、信号处理等操作。

以上是MATLAB的基本语法总结,可以通过MATLAB官方文档或相关教程进一步了解和学习。

MATLAB基本语法

MATLAB基本语法

在MATLAB中,变量和常量的标识符最长允许19个字符,标识符中第一个字符必须是英文字母。

MATLAB区分大小写,默认状态下,A和a被认为是两个不同的字符。

(case sensitive)一、数组和矩阵(一)数组的赋值数组是指一组实数或复数排成的长方阵列。

它可以是一维的“行”或“列”,可以是二维的“矩形”,也可以是三维的甚至更高的维数。

在MATLAB中的变量和常量都代表数组,赋值语句的一般形式为变量=表达式(或数)如键入a=[1 2 3; 4 5 6; 7 8 9]则将显示结果:a=1 2 34 5 67 8 9数组放置在[ ]中;数组元素用空格或逗号“,”分隔;数组行用分号“;”或“回车”隔离。

(二)复数MATLAB中的每一个元素都可以是复数,实数是复数的特例。

复数的虚部用i或j表示。

复数的赋值形式有两种:z=[1+1i ,2+2i ;3+3i ,4+4i]z=[1,2;3,4]+[1,2;3,4]*i得 z=1.000+1.000i 2.000+2.000i3.000+3.000i4.000+4.000i以上两式结果相同。

注意,在第二式中“*”不能省略。

在复数运算中,有几个运算符是常用的。

运算符“′”表示把矩阵作共轭转置,即把矩阵的行列互换,同时把各元素的虚部反号。

函数conj表示只把各元素的虚部反号,即只取共轭。

若想求转置而不要共轭,就把conj和“′”结合起来完成。

例如键入w=z′,u=conj(z),v=conj(z)′可得 w=1.000-1.000i 3.000-3.000i2.000-2.000i 4.000-4.000iu=1.000-1.000i 2.000-2.000i3.000-3.000i4.000-4.000iv=1.000+1.000i 3.000+3.000i二、逻辑判断与流程控制 (一)关系运算关系运算是指两个元素之间数值的比较,一共有六种可能。

如表M-8所列。

(完整版)MATLAB基本语法

(完整版)MATLAB基本语法

在MATLAB中,变量和常量的标识符最长允许19个字符,标识符中第一个字符必须是英文字母。

MATLAB区分大小写,默认状态下,A和a被认为是两个不同的字符。

(case sensitive)一、数组和矩阵(一)数组的赋值数组是指一组实数或复数排成的长方阵列。

它可以是一维的“行”或“列”,可以是二维的“矩形”,也可以是三维的甚至更高的维数。

在MATLAB中的变量和常量都代表数组,赋值语句的一般形式为变量=表达式(或数)如键入a=[1 2 3; 4 5 6; 7 8 9]则将显示结果:a=1 2 34 5 67 8 9数组放置在[ ]中;数组元素用空格或逗号“,”分隔;数组行用分号“;”或“回车”隔离。

(二)复数MATLAB中的每一个元素都可以是复数,实数是复数的特例。

复数的虚部用i或j表示。

复数的赋值形式有两种:z=[1+1i ,2+2i ;3+3i ,4+4i]z=[1,2;3,4]+[1,2;3,4]*i得 z=1.000+1.000i 2.000+2.000i3.000+3.000i4.000+4.000i以上两式结果相同。

注意,在第二式中“*”不能省略。

在复数运算中,有几个运算符是常用的。

运算符“′”表示把矩阵作共轭转置,即把矩阵的行列互换,同时把各元素的虚部反号。

函数conj表示只把各元素的虚部反号,即只取共轭。

若想求转置而不要共轭,就把conj和“′”结合起来完成。

例如键入w=z′,u=conj(z),v=conj(z)′可得 w=1.000-1.000i 3.000-3.000i2.000-2.000i 4.000-4.000iu=1.000-1.000i 2.000-2.000i3.000-3.000i4.000-4.000iv=1.000+1.000i 3.000+3.000i二、逻辑判断与流程控制 (一)关系运算关系运算是指两个元素之间数值的比较,一共有六种可能。

如表M-8所列。

matlab基本语法

matlab基本语法

4.2 MATLAB的基本语法
4.2.4.2 二维图形的绘制
1. 二维图形绘制命令plot MATALB为用户提供了一个基本的二维曲线绘图函数plot。
格式一: plot(y)--输入一个数组的情况 功能:如果y是一个数组,函数plot(y)给出线性直角坐标的二维图,该二维图以y中 元素的下标作为X坐标,y中元素的值作为Y坐标,一一对应画在X—Y坐标平面图上, 而且将各点以直线相连。若y的元素是复数,则plot(y)等价于plot(real(y),imag(y)),其中 real(y)是y的实部,imag(y)是y的虚部。若y是矩阵,就按列绘制曲线,曲线的条数等于y 矩阵的列数。
4.2 MATLAB的基本语法
(5)矩阵元素右除“A./B”与左除“A.\B”
矩阵元素右除“A./B”表示矩阵元素A(i,j)/B(i,j);矩阵元素左除“A.\B” 表示矩 阵B(i,j)/A(i,j),因此,A和B必须大小相同,或者其中之一为标量。 (6)矩阵幂“^”:X^p 如果p为标量,表示X的p次幂;如果X为标量,而p为矩阵,X^p用特征值和 特征向量表示X的矩阵p次幂。注意X和p不能同时为矩阵,但必须是方阵。 (7)矩阵元素幂“.^”:A.^B A.^B表示矩阵元素A(i,j)的B(i,j)次幂,A与B必须大小相同,或者其中之一 为标量。
(8) 矩阵转置“ ’ ”
A’表示矩阵A的线性代数转置。对于复矩阵,表示复共轭转置。 (9) 非共轭转置“ .’ ” A.’表示非共轭转置;对于复矩阵,不包括共轭。 (10)冒号操作符“:” 冒号是一个非常有用的操作符;可以产生向量、数组下标以及for循环。
4.2 MATLAB的基本语法
4.2.2.2 关系操作符
格式二: plot(x,y)--输入两个数组的情况 功能:绘出以x元素为横坐标、y元素为纵坐标的曲线。数组x和y必须具有相同长度。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矩阵整体的幂次运算
MATLAB的乘幂函数”^”、指数函数expm、
对数函数logm、和开方函数sqrtm是对矩阵 进行的,另外,还有矩阵乘法和除法也是 把矩阵作为一个整体来运算。 除此之外,其他MATLAB函数都是对矩阵 中的元素分别进行,
2.3

元素群运算
数组及其赋值 元素群的四则运算 元素群的幂次运算 元素群的函数 元素群运算能大大简化编程,提 高运算的效率,是 MATLAB 优于其他 许多语言的一个特色。
矩阵“除法”
线性方程组D*X=B,如果D非奇异,即 它的逆矩阵inv(D)存在; 则其解用MATLAB表为 : X=inv(D)*B=D\B 符号‘\’称为左除,即分母放在左边。 左除的条件:B的行数等于D的阶数(D 的行数和列数相同,简称阶数)
矩阵右除
若方程组表为为X*D1=B1,D1非奇异,即 它的逆阵inv(D1)存在。 则其解为 X=B1*inv(D1)=B1/D1 符号‘/’称为右除。 右除的条件:B1的列数等于D1的阶数(D1 的行数和列数相同,简称阶数)
随机数矩阵(n×m阶)
正态随机数矩阵(n×m阶)
eye(n)
linspace(xs,xf,N)
单位矩阵( n×n方阵)
均分向量(1×N阶数组)
矩阵组合与显示
大矩阵可由若干个小矩阵组成,但必须其行 列数正确,恰好填满全部元素。 一个矩阵中所有元素用同一显示格式。有一 个是小数则都用小数; 当矩阵中的最大元素小于0.001,或其最小元 素大于1000时,MATLAB会把其公因子提出 来。 元素大小差别很大时,不宜用矩阵显示。

mesh(X,Y,Z,C)和surf(X,Y,Z,C)

简便绘图命令
MATLAB中提供的有
ezplot, ezmesh,ezsurf等 ATLAST提供的有 plotline, plotamgle, eigplot 等 本书提供的有 ezplplot, ezplplot2, ezplplot3等 这些将在用到时作介绍。

变量检查
变量检查命令who,whos
打开工作空间视窗 在检查中不显示内部变量
eps、realmax、realmin、pi、 i、j、inf、NaN
五 特殊矩阵赋值函数
zeros(n,m)
ones(n,m)
全零矩阵(n×m阶)
全么矩阵(n×m阶)
rand(n,m)
randn (n,m)
将101~125等25个数填入一个5行5列的表
格中,使其每行每列及对角线的和均为565。
基本绘图方法
(1)直角座标中的两维曲线
(2)多条曲线的绘制
(3)其他坐标二维绘图
(4)屏幕控制
(5)三维曲线和曲面
2.5 基本绘图方法
直角座标中的两维曲线
plot命令的基本格式 plot(Y) = plot(n,Y) plot(t,Y) plot(t,Y,’:w’)
三维曲面
三维曲面的自变量是两维矩阵X和Y,代表xy 平面上点阵的x,y坐标; 第三维因变量 z 是 x,y 的函数, z=f(X,Y) 得到 的数组与X,Y同阶; 空间曲面的绘制 mesh(X,Y,z) 或mesh(z)


X,Y为两维自变量矩阵,表示平面上的点阵; Z是X,Y的函数,所以是两维的因变量矩阵; 变元C是颜色,可以表示第四维空间。
c(i,j)=a(i,1)*b(1,j) + a(i,2)*b(2,j) + … + a(i,p)*b(p,j) = ∑pa(i,k)*b(k,j)
矩阵的乘法
两矩阵相乘C=A*B的条件是A的列数
等于B的行数,简称内阶数相同。设 矩阵A 为n×p阶,矩阵B为p×m阶, 则C是n×m阶。内阶数不同的矩阵 不能相乘。 不符合交换律:A*B≠B*A,左乘不 等于右乘; 若一个变量是标量,则按标量乘法。
数的八种显示格式
MATLAB 命令 format long format short e 显示形式 3.14159265358979 3.1416e+000 说 明 16位十进制数 5位十进制数加指数
format long e
format hex format bank format + format rat format short (默认)
MATLAB中的数

MATLAB中的实数只有一种数据格式, 那就是双精度(即64位二进制或8个字节), 它的有效值是十进制16位,动态范围是10 的±308次幂。 2.2251×10 –308——1.7977×10+308 数的存储和运算全按同一格式进行, 使编程简单,减少差错,改善人机交互,付 出代价是内存空间和运行速度,形成 MATLAB的一大特色。
矩阵的乘法
a(1,1) a(1, p) b(1,1) b(1, j ) c(1,1) c(1, m) b(2, j ) c(i, j ) a(i,1) a(i,2) a(i, p) * c(n,1) c(n, m) b( p,1) b( p, j ) a ( n ,1) a ( n , p ) b(1, m) b ( p , m)
故有 X=[x1;x2;x3]=A\b
用矩阵除法解线性方程组
解方程组 6 x1 + 3 x2 + 4 x3 = 3 -2 x1 + 5 x2 + 7 x3 = -4 8 x1 - 4 x2 - 3 x3 = -7 的程序为: A = [6,3,4; -2,5,7; 8,-4,-3]; B = [3;-4;-7]; X = A\B
进行运算。为了与矩阵作为整体的运算 符号相区别,要在运算符 “*、/、\、^”前加一点符号“.” 。 元素群运算的英文原文是‘数组运算’ (Array Algorithm),实际上它适用于任 何阶的矩阵,故取名‘元素群运算’更 为确切。
三、元素群的函数运算
所有的MATLAB函数都适用于作元素
群运算,只有专门说明的几个除外。 就是*、/、\、^ 运算符和sqrtm、expm、 logm三个函数。 实例,做一个三角函数表: x=[0:0.1:pi/4]'; [x,sin(x),cos(x),tan(x)]
3.14159265358979e+0
400921fb54442d18 3.14 + 355 / 113 3.1416
16位十进制加指数
16位十六进制数 两位小数 正、负或零 有理数分数近似 二位整数, 四位小数
二、矩阵及其元素的赋值
格式1:变量=表达式(或常量) 格式2:表达式
表达式中的运算符有:
最后一个变元前一个符号为线型(点型) 后一个字母表示颜色
线型、点型和颜色
表2-11 线型、点型和颜色 标志符 颜色 标志符 线型和点型
y
m

品红
.
o

圆圈
c
r g b w k

红 绿 兰 白 黑
x
+ *长划线
三维曲线
空间曲线绘制


空间曲线的参数方程:x=x(t),y=y(t),z=z(t) 自变量 t 即为参数向量, 故x,y,z为同样长度的数据向量 plot3(x,y,z)可以画出空间曲线。
线性方程组表为矩阵相乘
x1 + 2x2 + 3x3 = 2 3x1- 5x2 + 4x3 = 0 7x1 + 8x2 + 9x3 = 2 可以表为 1 2 3 x1 2 A * X 3 5 4 x2 0 b 7 8 9 2 x3
加(+)、减(-)、乘(*)、左除(\)、右除(/)、 指数(^)、共軛转置(‘)、空矩阵([])等。
表达式的结尾标点:若为分号‘;’,不显示; 若为逗号‘,’或直接回车,显示运算结果。
三、复数
虚数符号MATLAB启动时定为i,j,可以
不用乘号,连写在数字后面。 如果用户在程序中另外給i,j赋值,则它 们的虚数意义就失效。 conj(x)表示共軛,即把x的虚部反号。 ‘ 是共軛转置运算符,对实矩阵把行 号与列号交换,对复矩阵除行列交换外, 还要把矩阵元素取共軛。

2.2 矩阵的初等运算
(1)矩阵数值的表示方法; (2)矩阵的加减乘法; (3)矩阵的除法和线性方程解; (4)矩阵的乘方和超越函数;
矩阵的加减法
两矩阵进行加减的条件是其行数和列
数相同,简称阶次相同,矩阵的加减 即其对应元素的加减。 size(A)=size(B) 如果其中一个变量是标量,则会自动 扩展成各元素均取此标量值的同阶次 矩阵。
第二章 基本语法
2.1 变量及其赋值 2.2 矩阵的初等运算
2.3 元素群运算
变量及其赋值



(1)标识符与数 (2)矩阵及其元素的赋值 (3)复数 (4)变量检查 (5)基本赋值矩阵
一、标识符与数
标识符:标识符是标志变量名、常量名、
函数名和文件名的字符串的总称。 MATLAB中的标识符最长允许63个字符 , 合法字符是52个英文字母(大小写看成 不同字符)、10个数字和下划线。 第一个字符必须是英文字母.
一、数组及其赋值
数组通常是指单行或单列的矩阵,也称
为向量。 其赋值方法:


(1) x=[初值:增量:终值] (2) 线性分割函数 x=linspace(起点,终点,点数) (3) 对数分割函数 logspace(起点对数,终点对数,点数)
二、元素群的四则和幂次运算
相关文档
最新文档