作图代码
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");
}