MATLAB
201411132101
just for fun
展开
-
曲线拟合
polyfit(x,y,n):对散点列(x,y)做n次多项式拟合,返回多项式系数矩阵polyval(b, x):返回x关于系数矩阵为b的多项式对应的y来个例子:一次拟合:x = [1 2 3 4 5];y = [1.1 1.9 3.1 3.99 5.01];plot(x, y, 'o');hold on;b = polyfit(x, y, 1);ny = polyval(原创 2015-11-10 18:38:58 · 559 阅读 · 0 评论 -
图像置乱
1.Arnold变换Arnold 变换,又称“猫脸”变换,是 Arnold在研究遍历理论过程中提出的一种变换。一般用(x′y′)=(1112)(xy)modN\left(\begin{matrix}x' \\y'\end{matrix}\right)=\left(\begin{matrix}1&1 \\1&2\end{matrix}\right)\left(\begin{原创 2016-09-07 21:59:51 · 4706 阅读 · 2 评论 -
图像滤波
关于图像滤波推荐一篇不错的博客。matlab中的fspecial函数能得到很多内置算子: average : 均值滤波器; disk : 圆盘均值滤波器; gaussian: Gaussian低通滤波器; laplacian :二维Laplacican算子的逼近滤波器; log :Laplacian的Gaussian滤波器; motion :运动滤波器原创 2016-10-03 15:20:12 · 557 阅读 · 0 评论 -
imwrite 保存浮点数图像
有些图像处理过后每个像素点都成了0~1的小数,此时要保存图像比较麻烦。高版本的matlab或许已经很完善了,然而我的2010b无法直接用imwrite保存二维浮点数图像。无奈之下自己写了个映射函数。function I = map(A)% 将二维数组 A 映射到 0~255 中Min = min(min(A));Max = max(max(A));if Max == Min原创 2016-11-02 19:53:08 · 9394 阅读 · 2 评论 -
图像灰度化
I = imread('raw.png');I = rgb2gray(I);imwrite(I, 'gray.png', 'png');原创 2016-11-15 16:32:58 · 311 阅读 · 0 评论 -
箭头
matlab有自带的quiver,然而我电脑上画出来的箭头长度不对,于是自己写了一个。角度和比例可以根据需要修改。Example:arrow([-1 0], [11 0], 'k', 2)arrow([0 1], [0 -11], 'k', 2)function arrow(S, N, color, LineWidth)% 画一个以 S(2*1) 为起点的向量原创 2016-11-19 10:35:51 · 256 阅读 · 0 评论 -
坐标轴
画了个带网格的坐标轴,其中arrow函数是自己写的。fig = figure('NumberTitle', 'off', 'name', 'Happy');set(fig, 'color', 'w');LineWidth = 2;FontSize = 12;MarkerSize = 3;% x 轴arrow([-1 0], [10 0], 'k', 2);text(9原创 2016-11-19 11:53:45 · 238 阅读 · 0 评论 -
矩阵扩展
为了方便对图像边界的处理,通常要把图像矩阵进行扩展。示意图:原创 2016-11-20 17:29:25 · 3101 阅读 · 0 评论 -
图像缩放
最邻近插值和matlab自带函数完全一样。function nI = Nearest_Neighbor(I, ratio)% 将原图像 I 以 1:ratio 的倍率缩放得到目标图像 nI% 插值方法为 最临近插值[n m mm] = size(I);new_n = round(n * ratio);new_m = round(m * ratio);nI =原创 2016-11-20 21:34:02 · 423 阅读 · 0 评论 -
图像小波分解示意图
fig = figure('NumberTitle', 'off', 'name', 'Happy'); hold on;LineWidth = 2; FontSize = 18; MarkerSize = 3; plot([0 0 8 8 0], [0 8 8 0 0], 'k', 'LineWidth', LineWidth);plot([4 4原创 2016-12-06 16:00:31 · 7055 阅读 · 0 评论 -
matlab 画三维图像
直接用 figure 打开一个新图像的话,这个图像是二维的,如果加上 hold on,三维图像就画不上去了解决方法:plot3(0,0,0,'Visible','off');这样产生的图像是三维的。我所知的画三维图像的三个函数是plot3,surf,mesh。plot3plot3(X,Y,Z) 是最一般的调用,可以通过句柄调曲线是否可视,曲线粗细原创 2016-09-20 13:59:02 · 1333 阅读 · 0 评论 -
句柄函数
神奇的句柄函数,参数可以是向量,返回值也可以是向量。f=@(x)[x(1)+x(2);x(1)-x(2)];原创 2016-07-05 19:56:03 · 1173 阅读 · 0 评论 -
画三维图像
有个神奇的colormap,可以设置曲面的颜色原创 2016-03-04 18:10:16 · 301 阅读 · 0 评论 -
画二维图像
突然发现ezplot是一个很好玩的函数,虽然有很多缺点,胜在方便它的变量名很随意,经测试,由大小写组成的变量名都行最多只能有两个变量,具体用法见样例一般函数:y = x * (x - 1) * (x - 2)ezplot('x * (x - 1) * (x - 2)');隐函数:x^2 + y^2 = 1;ezplot('x^2 + y^2 - 1');原创 2015-11-05 17:45:11 · 467 阅读 · 0 评论 -
产生随机数
rand:rand:返回一个(0,1)的随机数rand(5):返回一个5×5的矩阵,每个数是(0,1)的随机数rand(2,3):返回一个2×3的矩阵,每个数是(0,1)的随机数高维类似可得原创 2015-11-20 22:51:13 · 336 阅读 · 0 评论 -
矩阵基本操作
创建全1矩阵:ones(n) :创建一个n*n的矩阵ones(n,m) :创建一个n*m的矩阵ones(n,m,k) :创建一个n*m*k的矩阵以此类推有个很有意思的用法:ones(size(A)),返回一个和A大小相同的矩阵原创 2015-11-05 18:13:13 · 418 阅读 · 0 评论 -
matlab 图像保存
imwrite 的用法:imwrite(I,'test.bmp','bmp') :保存在matlab的Current Folder中imwrite(I,'.\1\test.bmp','bmp'):保存在matlab的Current Folder的下级文件夹1中原创 2016-06-02 14:23:59 · 388 阅读 · 0 评论 -
颜色的设定
用matlab画图可以修改很多东西的颜色改变线的颜色:plot(x, y, 'color', 'g');line(P([2 3],1), P([2 3],2), 'color', 'b');常用颜色有r 红g 绿b 蓝c 蓝绿m 紫红y原创 2015-11-30 11:40:41 · 278 阅读 · 0 评论 -
Kohn曲线
相比基本的科赫曲线,加入了角度的修改function draw_Kohn_Curve(P1, P2, N, options)% P1,P2是线段的始末两点(必须是1*2的向量),N是递归层数% options(1):线段宽度% options(2):旋转角度% options(3:5):线段颜色% 分支会往向量 P1P2 的逆时针方向凸default_options = [原创 2016-06-27 01:15:26 · 380 阅读 · 0 评论 -
Arborescent曲线
讲道理,我不确定有没有这东西,不过名字什么的并不重要。以钝角三角形为单位,将原三角形中间减一个裂口,分为两个与原三角形相似的小三角形,不断重复下去得到Arborescent曲线。function draw_Arborescent_Curve(P1, P2, P3, N, options)% Arboresent_Curve 的基本单位是等腰钝角三角形% P1是三角形顶点(必须原创 2016-06-28 01:16:32 · 345 阅读 · 0 评论 -
Sierpinski三角形
有意思的是,Sierpinski三角形和杨辉三角的01表示是对应的。基本单位是三角形,对于原三角形,删去各边中点构成的小三角形,不断重复下去。function draw_Sierpinski_Triangle3D(P1, P2, P3, P4, N, options)% Sierpinski_Triangle 的基本单位是三棱锥% P1, P2,P3, P4是三棱锥的原创 2016-06-28 13:08:43 · 3954 阅读 · 0 评论 -
风向玫瑰图
总司的输出能力风向玫瑰图,数据来源http://fgowiki.com/guide/petdetail/68function wind_rose(v)fig = figure('NumberTitle', 'off', 'name', 'Happy'); hold on; LineWidth = 2; FontSize = 12; n = 6;an原创 2016-12-29 23:14:15 · 3268 阅读 · 0 评论