您的位置:首页 > 编程语言 > MATLAB

MATLAB 画颜色网格图

2016-06-12 18:38 603 查看

作图代码

clear;
clc;
%%%%%%%%画网格%%%%%%%%
[m,n]=meshgrid(0:100);%100*100的网格
%%%%%%%%作图%%%%%%%%
A=load('D:\Seminar\8_Tencent20160608\FuzzyLogicMike_UnityProject\expectationData_101X101.txt');
surf(m,n,A);
%%%%%%%%设置颜色%%%%%%%%
map=ones(100,3);
c=linspace(1,0)';
map(1:100,[2,3])=[c,c];
colormap(map);
colorbar;
%%%%%%%%设置坐标轴%%%%%%%%
set(gca,'xtick',0:10:100);
set(gca,'xticklabel',{'0%','10%','20%','30%','40%','50%','60%','70%','80%','90%','100%'});
set(gca,'yticklabel',{'0m','10m','20m','30m','40m','50m','60m','70m','80m','90m','100m'});
view(2);


meshgrid用法

meshgrid用于生成采样点的网格

举个例子就明白了x=1:3;y=10:14;[X,Y] = meshgrid(x,y)

X =

1 2 3

1 2 3

1 2 3

1 2 3

1 2 3

Y =

10 10 10

11 11 11

12 12 12

13 13 13

meshgrid的函数应该是这样编出来的:x=x1:d1:x2;y=[y1:d2:y2]’;X=ones(size(y))*x;Y=y*ones(size(x))

linspace用法

linspace是Matlab中的一个指令,用于产生指定范围内的指定数量点数,相邻数据跨度相同,并返回一个行向量。

调用方法:linspace(x1,x2,N)

功能:用于产生x1,x2之间长度为N的行向量,相邻数据跨度相同。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。

举例如下:

X=linspace(5,100,20) % 产生从5到100范围内的20个数据,相邻数据跨度相同

X =

5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100

PS:这和X=[5 : 5 : 100]的效果是一样的。

xtick,xticklabel

简单点儿说吧:xtick是刻度(小竖线);xticklabel 刻度值(竖线下面的数值)。

set(gca,’xtick’,-pi:pi/2:pi)这句的意思是:手动设置x轴刻度,-pi到pi之间,每间隔pi/2,划一小竖线;

set(gca,’xticklabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’})这句的意思是:给刚才划上的小竖线,标个数值。如果你把它改成:set(gca,’xticklabel’,{‘a’,’b’,’c’,’d’,’e’}),那么那小竖线下就变成:a,b,c,d,e了。

colormap

map=ones(100,3);
c=linspace(1,0)';
map(1:100,[2,3])=[c,c];
colormap(map);
colorbar;


应用surf时,用colormap设置分布的颜色。简单讲,就是设置一个N*3的矩阵map,1 2 3列分别代表R G B的值(0~1),第一行即为surf Z中最小值显示的颜色,最后一行为surf Z中最大值显示的颜色,如何布置map矩阵决定了色图的颜色范围。

xlsread

Example 1— Reading Numeric Data

The Microsoft Excel spreadsheet file testdata1.xls contains this data:

1    6
2    7
3    8
4    9
5   10


To read this data into MATLAB, use this command:

A = xlsread('testdata1.xls')
A =
1    6
2    7
3    8
4    9
5   10


读取.txt文件到矩阵

若txt里面是矩阵的形式(只有数字),则直接

A=load('D:\路径\TestFile.txt')

得到A =

1     2     3
8     6     9
2     4     2


CSharp写入数据到.txt

using System;
using System.IO;
//写入代码
using (StreamWriter sw = new StreamWriter("TestFile.txt")) {
// Add some text to the file.
sw.WriteLine("1 2.21323 3");
sw.WriteLine("8 6 9.123213124324");
sw.WriteLine("2 4 0");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息