matlab 矩阵作图 [转]

摘要:
在论文中咱们会经常看见一类图,比如说多类别文类问题,那么每一个类别分到其他类别都有一写数据,但是分到自己类别的毕竟多,这样计算百分比之后就形成了一个矩阵,如果分类正确率高的话,那么对角线上的元素的值,也就是自己到自己的那一部分,value就大。

在论文中咱们会经常看见一类图,比如说多类别文类问题,那么每一个类别分到其他类别都有一写数据,但是分到自己类别的毕竟多,这样计算百分比之后就形成了一个矩阵,如果分类正确率高的话,那么对角线上的元素的值,也就是自己到自己的那一部分,value就大。

我最近也在做多分类问题,要画这样的图,但是发现确实很少有代码,自己画的确实不好看,还牵扯到值的显示和x轴标签的旋转问题,所以一直自己也没空仔细研究,就去stackoverflow问了一下,马上就得到了答案,stackoverflow是个好站点啊,关于计算机领域等的问答系统。很多牛人在上面。

下面我整理了一下代码,用的答案是gnovice的,分享出来,加入函数的输入就是一个矩阵了。

function draw_cm(mat,tick)

%%

%作者: 丕子  shamoxia.com

%  参数:mat-矩阵;tick-要在坐标轴上显示的label向量,例如{'label_1','label_2'...}

%

%%
imagesc(mat);            %# 绘彩色图

colormap(flipud(gray));  %# 转成灰度图,因此高value是渐黑色的,低value是渐白的

num_class=size(mat,1);

 

textStrings = num2str(mat(:),'%0.2f');

textStrings =strtrim(cellstr(textStrings));

[x,y] = meshgrid(1:num_class);

hStrings = text(x(:),y(:),textStrings(:), 'HorizontalAlignment','center');

midValue = mean(get(gca,'CLim'));

textColors = repmat(mat(:) > midValue,1,3);

%改变test的颜色,在黑cell里显示白色

set(hStrings,{'Color'},num2cell(textColors,2));  %# Change the text colors

 

set(gca,'xticklabel',tick,'XAxisLocation','top');

rotateXLabels(gca, 45);

 

set(gca,'yticklabel',tick);

里面的代码rotateXLabels(gca, 45 );是用来对x轴的label进行旋转的,防止因为太长而重叠,用的是Ben Tordoff写的,自己可以去下载这个function,这里我就不列出来了。

举个例子吧:

clc;

clear;

figure(1);

mat = rand(6);

draw_cm(mat,{'label_1','label_2','label_3', 'label_4', 'label_5', 'label_6'});

 

出来的图:

http://ir.sdu.edu.cn/bbs/attachments/month_1010/101016084517cf4d66dfe3dea9.jpg

[转]http://www.zhizhihu.com/html/y2010/2267.html

-------------

matlab如何读入mat型的矩阵 ?

a=load('filename.txt');
filename.txt 存数据的文本文件,在当前路径一般指在work文件夹下.可以用绝对路径,比如:
a=load('d:\my\filename.txt');
运行后a中的数据即为文件中的数据.
你的数据文本内容格式如下:
1,2,3,4,5
6,7,8,9,10
...
除了逗号(,)也可以使用空格( )或者制表符(TAB键)等形式,那load进来就是矩阵了
要连续TXT就用for循环吧~

免责声明:文章转载自《matlab 矩阵作图 [转]》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Selenium---元素定位之CSS定位Hadoop学习笔记-004-CentOS_6.5_64_批处理命令脚本下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CentOS terminal 安装 matlab(mode=silent)

1. 下载matlab for Unix 2014 ,需要crack文件 2. 挂载iso文件, mount -o loop,ro Mathworks.Matlab.R2014a.iso /media 3. 将crack中的install.jar 覆盖/media/java/jar下面的install.jar,这步骤必须正确完成 sudo cp Crack...

开源中文分词工具探析(四):THULAC

THULAC是一款相当不错的中文分词工具,准确率高、分词速度蛮快的;并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等。 【开源中文分词工具探析】系列: 开源中文分词工具探析(一):ICTCLAS (NLPIR) 开源中文分词工具探析(二):Jieba 开源中文分词工具探析(三):Ansj 开...

matlab中figure 创建图窗窗口

语法 figure figure(Name,Value) f = figure(___) figure(f) figure(n) 说明 figure 使用默认属性值创建一个新的图窗窗口。生成的图窗为当前图窗。 示例 figure(Name,Value) 使用一个或多个名称-值对组参数修改图窗的属性。例如,figure('Color...

矩阵LU分解

    有如下方程组 ,当矩阵 A 各列向量互不相关时, 方程组有位移解,可以使用消元法求解,具体如下:     使用消元矩阵将 A 变成上三角矩阵 ,     ,     使用消元矩阵作用于向量 b,得到向量 c,,     ,     Ax=b 消元后变为 ,即 , 由于  为上三角矩阵, 使用回带法即可求解方程组。     对矩阵  做如下运算 。在...

Laplace算子和Laplacian矩阵

1 Laplace算子的物理意义 Laplace算子的定义为梯度的散度。 在Cartesian坐标系下也可表示为: 或者,它是Hessian矩阵的迹: 以热传导方程为例,因为热流与温度的梯度成正比,那么温度的梯度的散度就是热量的损失率。 由此可见,Laplace算子可用于表现由于物质分布不均引起的物质输送。  2 Laplace算子的数学意义 现在...

Matlab并行编程方法1

相信很多朋友在利用matlab进行计算时,会遇到循环次数过大,或者是单次计算量过大的问题,比如需要计算的数值阵列数据量过大,利用传统的编程方式,跑一次程序几个小时,都要等的急死了是不是呢?如果遇到这种情况,则可以尝试一下MATLAB并行计算,传统的计算方式都是串行计算。并行计算之所以可行,取决于两方面因素:a)现在大家的计算机是多核的,至少也是双核了吧,有...