matlab操作与函数大全

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab 操作与函数大全

**调试matlab

(1) 设置或清除断点:使用快捷键F12。

(2) 执行:使用快捷键F5。

(3) 单步执行:使用快捷键F10。

(4) step in:当遇见函数时,进入函数内部,使用快捷键F11。

(5) step out:执行流程跳出函数,使用快捷键Shift+F11。

(6) 观察变量或表达式的值:将鼠标放在要观察的变量上停留片刻,就会显示出变量的值,当矩阵太大时,只显示矩阵的维数。

1.常用矩阵生成:

a) A = eye(5); 生成一个五阶单位矩阵。

b) A = ones(size(X)); 生成一个与X规格相同的全是1的矩阵。

c) A = zeros(size(X)); 生成一个与X规格相同的全是0的矩阵。

2.初始化:clear; close all; clc;

a)clear; 清空工作区与全局变量。

b)close all; 关闭所有窗口。

c)clc; 清空命令区域。

3.Matlab中的函数:常常单独写在一个.m文件中,与主文件在一个文件夹下。

形式:

function [J, grad] = CostFunction(theta, X, y, lambda)

J = …

grad = …

end

☆CostFunction是这个函数的名字;

theta,X, y, lambda都是传入函数的变量;

J和grad是函数的返回值,在函数中要对他们赋值。

4.data = load(‘a.txt’); 将a.txt里面的数据存入矩阵data中。

5.矩阵取数:

a)X = data(: , 1); 从data矩阵中取第一列,赋给向量X;

b)X = data(:, [1, 2]); 从data矩阵中取1,2列,赋值给X;

6.m = length(y); 取一个向量的长度。

7.size函数:

a)size(X, 1); 取矩阵X的行数。

b)size(X, 2); 取矩阵X的列数。

c)[m n] = size(X); 取矩阵的行数和列数,分别存在m,n中。

8.plot函数:

a)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线。

当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的

曲线,当x 为m× n 矩阵时,就由n 条曲线。

b)plot(x, y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。

c)plot(x, y1, x, y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘制

多条曲线。

d) e.g. plot(X,Y,'LineWidth',2,'Color',[0.6 0 0]); 以宽为2的、暗红色的线画图。

e) e.g. plot(x, y, 'rx', 'Markersize', 10);

i.‘rx’指的是red+x,在坐标上画出红色的叉叉。

ii.Markersize是用来标记的符号(点、叉等)的大小。

9.theta = zeros(2, 1); 产生一个2*1的全是0的矩阵。

10.X = [ones(m, 1), data(:,1)]; 给X矩阵加一列。(直接用两列合并成一个矩阵)。

11.for 循环:

e.g.

for i = Begin: Step: End %其中step若不填则默认为1

具体的编程内容

end

12..*和./和.^: 矩阵元素一一相乘除、乘方。

13.sum:

a)sum(A): 对A向量的所有元素求和。

14.find函数:返回符合要求的元素的所在位置,存在新的矩阵中。

a)X = find(A); 返回矩阵A中非零元素所在位置,存在向量X中。

>> A = [1 0 4 -3 0 0 0 8 6];

>> X = find(A)

结果:

X =

1 3 4 8 9

b)pos = find(y==1); 在y向量中找y=1的,将其位置存在pos向量中。

c)(接上) plot(X(pos, 1), X(pos, 2)); 将X矩阵中对应y=1的参数,以第1列为x轴,

第二列为y轴画出来。注意,pos是一个向量,X也是一个向量。这样写的意思是,

将X向量中这些位置的向量提取、再画出来。

15.对数和指数

a)指数函数:e^x表示为:exp(x); 其中若x为矩阵,则是矩阵中每一个数都取一个

指数。

b)对数函数:ln(x)表示为:log(x); 若想以10为底,则用log10(x);

16.输出语句:fprintf(['…']);

17.If语句:(end后面不用加分号)

a)if … elseif … else … end

b)if … else … end

c)if … end

18.使用fminunc: 最小化一个目标函数。

options = optimset('GradObj', 'on', 'MaxIter', 400);

% 'GradObj','on': 用户自己定义函数的梯度。

% 'MaxIter', 400:允许的最大迭代次数为400

[theta, cost] = fminunc(@costFunction(…), initialTheta, options);

%costFunction(…)是自己写的,提供对应参数下的代价值,目标就是将它最小

化。(参数就相当于提供给代价函数的变量,比如theta。)在这里,costFunction

需要返回[J, grad], J是计算出的代价值,grad是由我们自己计算出的梯度。

相关文档
最新文档