Matlab工程

时间:2023-03-09 16:40:54
Matlab工程

1、matlab设置默认路径

在原来的默认路径(bin)下创建一个名为startup.m的文件,内容为相对路径

        cd ..\..\WorkSpace\

或绝对路径

        cd F:\Program\MATLAB\WorkSpace\

即可。再次打开MATLAB时便会自动执行startup.m文件,将工作路径转至WorkSpace下。

2、画图

例程:

figure;            //画图,通常可以为figure(1),figure(2).....
X = 0 : 5 : 5*15; //设置数组,起点:间隔:终点
for n = 0: 5 : 5*15 //for 循环,起点:步长:终点 输出包括终点
plot(X, n, 'r.'); //画点,以X为x坐标,n为y坐标,颜色为r,类型为.
hold on; //每次画完一个点保持
end //for循环需要end来结束
axis([0 75 0 75]); //设置坐标系的长度
set(gca, 'Xtick', [0: 5: 75]); //设置X坐标系的步长
set(gca, 'Ytick', [0: 5: 75]); //设置Y坐标系的步长
axis square; //设置坐标系为正方形
grid on; //显示出栅格

3、画圆

function DrawCircle(x, y, r)    //定义函数,没有返回值,参数为x,y,r
seta=0:0.001:2*pi; //画圆的参数步长0.001
xx=x + r*cos(seta);
yy=y + r*sin(seta);
plot(xx, yy, 'b');
hold on;

4、计算交点

function [X, Y] = GetXpoint(x1, y1, r1, x2, y2, r2)            //函数返回为[X,Y]
syms x y; //syms定义两个变量x,y
[X, Y] = solve((x-x1)^2+(y-y1)^2==r1^2, (x-x2)^2+(y-y2)^2==r2^2); //求解两个方程;注意中间为==
if isreal(X) && isreal(Y) //检测两个是否都是实数
for n = 1:length(X) //循环从1到2 注意这里的数组从1开始
a = double(X(n)); //把值转换成小数的double型就可以同text输出
b = double(Y(n));
str = sprintf('(%.2f,%.2f)', a, b); //和C一样把a,b按固定格式输出到str
text(a, b, str);
hold on;
plot(X, Y, 'r*');
hold on;
end
else
return;
end
end
  • 调用了solve函数的返回值都是sym类型,不能直接使用,需要自己转换成数据类型
function X = dealPoints(ps) %X为返回矩阵;ps为输入矩阵
[rows, cols] = size(ps); %通过size得到ps的行长和列长,第一个为行数,第二个为列数
x = double(0); %定义x和y
y = double(0);
for i = 1: 1: cols %按步长1遍历列长
x = x + ps(1, i); %得到和
y = y + ps(2, i);
end
a = x / cols; %取平均
b = y / cols;
X = [ x / cols , y / cols]; %返回X
plot(a, b, 'r*'); %画点
str = sprintf('(%.2f,%.2f)', x / cols, y / cols);
text(a, b, str);
end

计算二维矩阵的大小有好几种方法,比如size,numel,lenth等等。但这几个函数有各有不同。
[a,b]=size(A)的计算结果是a表示矩阵A的行数,b表示矩阵A的列数。
s=numel(A)的计算结果是A的元素总数,对于二维矩阵而言相当于size结果中的a*b
c=lenth(A)的计算结果是取矩阵A中的行数或列数大的那个。相当于size中的max(a,b)