MATLAB常用1

来源:互联网 发布:中国外汇储备数据 编辑:程序博客网 时间:2024/06/16 01:22

1.矩阵

fprintf('5x5 Identity Matrix: \n');%输出

A = [];

A = eye(5);%单位阵

det(A);求行列式

fprintf('Program paused. Press enter to continue.\n');

pause;%暂停,enter键继续

A‘矩阵的转置

A^2写成A’*A,因为要满足行列的关系

X(i,:)%矩阵的i行所有元素

X([1,3],:);%矩阵1、3行元素

X(:);%矩阵变向量

X = [ones(m, 1), data(:,1)]; % Add a column of ones to x,ones(m, 1):m行1列元素均为1的矩阵
theta = zeros(2, 1); % initialize fitting parameters,zeros(2, 1):2行1列元素均为0的矩阵

size(A);%输出是一个1×2矩阵,分别表示行和列

size(A,2);%矩阵A的第2个元素

c=[a b]或c=[a,b]与c=[a;b]

A*B %矩阵相乘

A.*B %矩阵对应元素相乘

A.*2 %矩阵每个元素平方

1./A %1除以A中每位元素

log(A) %每位求log

exp(A) %每位求以e为底的次方

abs(A) %每位求绝对值

[val, ind]= max(A)%将A中最大的元素存入val,对应的索引值存入ind

A<3 %将A中的每位元素与3比较,小于3为1,大于3为0

[r,c]=find(A<3 ) %A中元素小于3对应的索引值

magic(3) %生成各行各列相加值相等的3×3矩阵

sum(A) %列求和

sum(A,1) %每列求和

sum(A,2) %每行求和

sum(sum(A)) %矩阵求和

sum(A(:))%矩阵求和

prod(A) %列求积

floor(A) %向下四舍五入

ceil(A) %向下四舍五入

rand(3) %随机生成3×3矩阵

max(rand(3),rand(3)) %两个随机生成的矩阵对应最大的元素

max(A,[],1) %矩阵每列最大的元素

max(A,[],2) %矩阵每行最大的元素

max(A) %矩阵每列最大的元素

max(max(A)) %矩阵最大的元素

max(A(:)) %矩阵最大的元素

flipud(eye(3)) %反转与转置不同A’,结果如下

001

010

100

pinv(A) %伪求逆,可以求出不可逆矩阵的逆

inv(A) %求逆


2.读数据

data = load('ex1data1.txt');%读文档,文档有两列数据
X = data(:, 1); y = data(:, 2);%X为第一列,y为第二列
m = length(y); % number of training examples读取数据长度


3.画图

a.二维

figure; % open a new figure window

plot(x, y, 'rx', 'MarkerSize', 10); % Plot the data。rx红色x,10是MarkerSize
ylabel('Profit in $10,000s'); % Set the y axis label
xlabel('Population of City in 10,000s'); % Set the x axis label

hold on; % keep previous plot visible
plot(X(:,2), X*theta, '-')%画直线
legend('Training data', 'Linear regression')%图中的线的名称
hold off % don't overlay any more plots on this figure

如果要两张图分开显示,可以figure(1);plot(。。。);figure(2);plot(...);

subplot(1,2,1);%devides plot a 1×2 grid,access first element 

plot(t,y1) ;%在第一个格子画图

subplot(1,2,2);%devides plot a 1×2 grid,access second element 

plot(t,y2);

axis([0.5 1 -1 1]);%限制xy轴的坐标范围

clf;%清除图像

A=magic(5);

imagesc(A):%将矩阵可视化

imagesc(A),colorbar,colormap gray;%三个命令:矩阵可视化、显示颜色条、灰色图


b,三维

figure;
surf(theta0_vals, theta1_vals, J_vals)%分别表示x,y,z轴的变量
xlabel('\theta_0'); ylabel('\theta_1');%x,y轴名称,显示时为希腊字母及下角

c.等高线图

figure;
contour(theta0_vals, theta1_vals, J_vals, logspace(-2, 3, 20))
xlabel('\theta_0'); ylabel('\theta_1');
hold on;
plot(theta(1), theta(2), 'rx', 'MarkerSize', 10, 'LineWidth', 2);

contour是等高线绘制函数
contour(Z)根据矩阵Z画出等高线,Z是以x,y为平面的高度。Z必须是一个至少二维的矩阵。等高线的数量和水平线的值将根据Z值的最小值和最大值自动选择。x,y轴的范围是[1:n]和[1:m],[m,n]=size(Z)
contour(Z,n)用n条水平线来绘制Z的等高线。
contour(Z,v)是以向量v中的数据来绘制矩阵Z的等高线。等高水平线的个数等于向量v的长度。如果想画一条单个等高线,使用contour(Z,[i i]).
contour(X,Y,Z),contour(X,Y,Z,n),contour(X,Y,Z,v)绘制Z的等高线。X,Y限制在x,y轴上的范围。如果X,Y是矩阵,它们必须跟Z是同型矩阵,此时它们描述了一个表面,因此应当用surf函数定义一下

logspace(a,b,n),其中a、b、n分别表示开始值(10^a)、结束值(10^b)、元素个数(n)。
功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。n如果省略,则默认值为50。在matlab的命令窗口中输入help logspace或者doc logspace可以获得更多帮助信息。

4.循环

matlab中循环从1开始。

v=zeros(10,1);

for i=1:10,

   v(i)=2^i;

end;


indices=1:10;

for i=indices,

    disp(i);

end;


i=1;

while i<=5,

   v(i)=100;

   i++;

end;


i=1;

while true;

    v(i)=999;

    i=i+1;

    if  i==6,

      break;

    end;

end;


5.条件语句

if ... ,...;  

elseif ... , ...;

else ...;

end;


0 0
原创粉丝点击