利用Matlab实现PCA demo展示

input_data = rand(1000,3);%随机生成1000个样本,每个样本有x,y,z三个属性

figure(1);
%控制画图的窗口为1

hold off;
%使当前轴和图形不再具备被刷新的性质,关闭在此基础上再画图

plot3(input_data(:,1), input_data(:,2), input_data(:,3), ‘ro‘);

%% Function PCA, input_data, out_dim

% Use this to switch methods

use_svd_method=1;
%改为0后采用EIG方式求解,默认采用SVD方法

out_dim = 2;

[count in_dim] = size(input_data);

% SVD方法求解PCA,计算步骤此处不详解,可查看关于PCA的另外两篇博文

if (use_svd_method)

sub_input_data = (input_data - repmat(mean(input_data),count,1))/sqrt(count-1);
%repmat(a,m,n)就是将矩阵扩充为m行n列个矩阵a,此处是指将mean(input_data)扩充为1000行1列,结果就是将input_data每列的均值重复1000遍,生成一个1000*3的矩阵,sqrt是求开方

[U,S,V] = svd(sub_input_data);

% First out_dim columns as PCA bases

pcaV = V(:,1:out_dim);

output_data = input_data * pcaV;

else

% EIG 特征值分解方法求解PCA

mean_input_data = mean(input_data);

sub_input_data = input_data - repmat(mean_input_data, count,1);

mean_mat = sub_input_data‘ * sub_input_data ./ (count - 1);

cov_mat = mean_mat;

[V D] = eig(cov_mat);

% Last out_dim columns as PCA bases

pcaV = V(:,in_dim - out_dim + 1: in_dim);

output_data = input_data * pcaV;

end

%% End Function PCA

%% Visualize Output Data

figure(2);

hold off;

plot(output_data(:,1), output_data(:,2), ‘bo‘);%bo代表blue颜色的o(圆圈)

原数据展示图:

降维后的展示图:

时间: 2024-10-11 04:18:18

利用Matlab实现PCA demo展示的相关文章

【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)

此篇是利用matlab对caffemodel的卷积核进行可视化.只介绍了卷积核的可视化,不涉及特征图的可视化. 是参考此博客: http://blog.csdn.net/zb1165048017/article/details/52643188 前期准备,需要两个东西 1. 模型的描述文件 deploy.prototxt 2. 模型本身lenet_iter_10000.caffemodel (此处用的examples中的mnist里的) 第一步: 在创建D:\caffe-master\matla

利用MATLAB计算三维坐标序列距离误差程序

1.三维坐标储存在文件中,格式如下: 各坐标间的距离真值是一定值,计算相邻距离的标准差. 2.MATLAB程序如下: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 名称:caculateAccuracy.m % 功能:读取三维世界坐标,计算精度 % 作者:LYC % 单位:中科院苏州医工所 % 日期:2014.5.5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

利用MATLAB生成模式类

最近开始了模式识别的学习,在此之前需要对模式和模式类的概念有一个了解,这里使用MATLAB实现一些模式类的生成.在此之前,引用百科上对于模式识别和模式类的定义,也算加深以下了解: 模式识别(Pattern Recognition):人类在日常生活的每个环节,从事着模式识别的活动.可以说每个有正常思维的人,在他没有入睡时都在进行模式识别的活动.坐公共汽车找汽车站,骑车判别可行进道路,对观察到的现象作出判断,对听到的声音作出反应,判断东西的好与坏以及水果的成熟与否等等都是人们判断是非,判别事物的过程

【转】利用matlab生成随机数函数

原文地址:利用matlab生成随机数函数 rand(n):生成0到1之间的n阶随机数方阵  rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数) betarnd:贝塔分布的随机数生成器 binornd:二项分布的随机数生成器 chi2rnd:卡方分布的随机数生成器 exprnd:指数分布的随机数生成器 frnd:f分布的随机数生成器 gamrnd:伽玛分布的随机数生成器 geornd:几何分布的随机数生成器 hygernd:超几何分布的随机数生成器 lognrnd:对数正态分布

利用matlab给图像加高斯噪声

I = imread('DSC_0034.JPG'); J = imnoise(I,'gaussian',0.20); figure, imshow(I), figure, imshow(J) 利用matlab给图像加高斯噪声

利用matlab提取并分割RGB图像中的某一个已知像素值的图像

已知一副RGB图像中的的像素值,利用matlab将其分割出来并以二进制图像形式显示: %extract.m clear all; I=imread('new_original.png'); figure,imshow(I),title('Original Image'); bw=im2bw(I,0.3); %figure,imshow(bw),title('Gray Image'); rgb=[252,2,4]; img=extract_rgb(I,rgb); figure,imshow(im2

lesson5:Condition的原理分析及demo展示

Condition 将 Object 监视器方法(wait,notify,和notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wait-set).其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用.每个condition都是与一个锁关联的,一个锁可以创造一个或多个condition. 关于condition的描述,参考资料:http://downloa

模式识别:利用MATLAB生成模式类

近期開始了模式识别的学习,在此之前须要对模式和模式类的概念有一个了解,这里使用MATLAB实现一些模式类的生成.在此之前,引用百科上对于模式识别和模式类的定义.也算加深以下了解: 模式识别(Pattern Recognition):人类在日常生活的每一个环节,从事着模式识别的活动. 能够说每一个有正常思维的人,在他没有入睡时都在进行模式识别的活动. 坐公共汽车找汽车站,骑车判别可行进道路.对观察到的现象作出推断.对听到的声音作出反应,推断东西的好与坏以及水果的成熟与否等等都是人们推断是非,判别事

利用 matlab 读取SAR 元数据

这方面可以参考书籍:"Digital processing of synthetic aperture radar data", by Ian Cumming and Frank Wong. 里面给出了用matlab写的例子.不同的传感器获取元数据类型有所不同,数据结构比较复杂,要针对不同情况进行分析. 相关英文解释如下: 点击打开链接 利用 matlab 读取SAR 元数据