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)