书小宅之MATLAB

程序设计原则

1、M文件不要以纯数字命名;
2、以在命令行中键入文件名的方式运行.M文件,不要加“.M”;
3、用%进行注释,提高程序的可读性;
4、在主程序开头用clear清除变量,在子程序中不使用clear;
5、参数值集中放在程序开始部分;

文件类型

M文件有两种类型:
1、命令(Script)文件:没有输入输出参数,可以直接运行,全局变量;
2、函数(function)文件:有输入输出参数,需要调用,内部变量是局部变量,保存的文件名必须与函数名同名

%绘制花瓣
theta=-pi:0.01:pi;
rho(1,:)=2*sin(5*theta).^2;
rho(2,:)=cos(10*theta).^3;
rho(3,:)=sin(theta).^2;
rho(4,:)=5*cos(3.5*theta).^3;
for k=1:4
    subplot(2,2,k),
    polar(theta,rho(k,:))
end

绘制花瓣

%计算从1到n的n个数之和
function X=total(n);
if n<1
    error('Input must be larger than 1');
end
k=1:n;
X=sum(k);
X=total(3)

结果:X=6

矩阵

a=zeros(3):零矩阵;
b=ones(3):单位矩阵;
c=rand(3):随机无符号矩阵;
d=randn(3):随机有符号矩阵;
e=triu(m):取m的上三角矩阵,其他的元素补零;
f=tril(m):取m的下三角矩阵,其他的元素补零;
g=diag(m):只取m的对角线 上的元素,其他元素省略。

X[1 2 3 0 ; 5 6 0 8 ; 9 0 11 12 ; 0 14 15 16]
X(2,3):第二行,第三列的元素;
X(2,:):第二行的所有元素;
X(2:3,1:3):第二三行的1,2,3列的元素;

常用函数

[m,n]=size(X):计算X的行数m和列数n;

clear all;
name='shuxiaozhai';
age=21;
disp(sprintf('%s is %d years old!' ,name,age));

shuxiaozhai is 21 years old!

clear all;
name='shuxiaozhai';
age=21;
str=['名字叫做:',num2str(name)];
disp(str);

名字叫做:shuxiaozhai

clear all;
A=3.1415926;
str = num2str(A, 3)
%把数组A转换成字符串形式表示,3表示精度(可省略), 表示保留最多3位有效数字.

str=3.14

命令行

补充:mat数据格式是matlab的数据存储的标准格式。
whos -file matlab.mat:查看“matlab.mat”文件中的内容

数据存储:

1、save:将所有变量保存在“matlab.mat”的文件中,通过load命令来重新装入工作空间;
2、save 文件名 变量名:将指定变量保存在“文件名.mat”文件中;
3、save 文件名 选项:指定保存进文件的变量格式。

数据导入:

1、load :导入“matlab.mat”中的所有变量,如果“matlab.mat”不存在,返回erro;
2、load filename:将filename中的所有变量导入工作空间;
3、load filename X Y Z:将filename中的X、Y、Z变量导入工作空间;
4、load -mat filename:将filename以mat格式导入,如果不是mat格式返回error。
5、A=importdata(‘filename’):将filename中的数据导入工作空间,并保存为变量A(可省);
6、importdata(‘filename’,‘delimiter’):将filename中的数据导入工作空间,以delimiter指定的符号作为分隔符。

importdata将文件中的数据以结构体的方式导入工作空间中。

数据打开:

1、open(‘filename.mat’):以结构体的方式打开filename内容;
2、load(‘filename.mat’):将filename内容导入工作空间。

补充:句柄是一个标识符,是拿来标识对象或者项目,是标识被应用程序所建立或使用的对象的唯一整数(应用程序实例,窗口,控制,位图,GDI对象等等)

文件的输入输出:

1、fid=fopen(filename,‘option’):
打开或创建文件filename;
fid用于存储文件句柄值,打开成功返回值大于0,失败返回-1。
option的值:
‘r’:打开文件进行读操作(缺省)
‘w’:删除已经存在内容或生成新文件,进行写操作;
‘a’:打开已存在的文件或生成并打开新文件,在文件末尾进行写操作。
如‘rt’:以文件方式打开进行读操作;
如’rb’:以二进制格式方式打开进行读操作。

2、sta=fclose(fid):sta表示关闭文件操作的返回代码,关闭成功返回0,失败返回-1;
fclose(‘all’):关闭所有已打开的文件。

3、[A,Count]=fread(fid,size,precision):
A存放数据矩阵;
Count记录元素个数;
fid是文件句柄;
size是需要读取的文件大小【N:读N个元素到一个列向量,inf:读取整个文件,[M,N]:存入按列存放的矩阵】;
precision控制所写数据的精度【char、uchar、int、long、float、double,缺省uchar】。

4、Count=fwrite(fid,A,precision):A中元素转化为precision精度写入fid,Count记录写入的元素个数。

5、[A,Count]=fscanf(fid,format,size):读取fid文件中的所有数据,按format格式进行转化,size(可选)决定数据排列形式,返回给矩阵A,Count记录读取的元素个数。

6、fprintf(fid,format,A):将A中的数据按format格式写入fid文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值