怎样用matlab进行列向量归一化?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用matlab进行列向量归一化?相关的知识,希望对你有一定的参考价值。

  一、解决方法:
  按列除以归一化因子,bsxfun(@rdivide,rand(3),1:3) 可以快速实现。
  二、matlab的小技巧:
  1、Ctrl+C 中断正在执行的操作
  如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。MATLAB这时可能正疲于应付,响应会有些滞后。
  2. figure命令新建一个绘图窗口
  figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象。所谓的当前figure窗口,也就是最后一次查看的窗口(可以用命令gcf得到)。
  figure(N),将编号为N的窗口置为当前figure,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N的空白figure。
  3. 注释掉一段程序:%、%。
  经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %和 的组合。输入%后,后面的代码都会变绿,在注释结束的地方再加上 % 。
  也可以选中要注释内容,在右键菜单中选择Comment (Uncomment去掉注释标记),或使用快捷键Ctrl+R。
  将光标放在需要注释的行中,按Ctrl+R,将该行变为注释。取消注释也是一样的,快捷键为Ctrl+T。
  4. doc 命令名,打开命令的帮助文档
  与help命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。
  5. clc 清屏
  清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。
  6. clear 和clear all
  clear 变量名:可以清除workspace中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。
  clear all 清除所有的变量,使workspace一无所有,当重新开始一次算法验证时,最好执行一次,让workspace中的变量一目了然。
  7. close all
  如果开了多个绘图窗口,用这个命令将它们一起关掉。
  8. 上下光标键↑↓
  在命令窗口中,上下光标键可以将历史记录中的命令复制到输入位置,便于快速重新执行。如果输入命令的前几个字母如 [row, col] =,再使用光标键,则只会选择以这些字母开始的命令。
  9. Tab补全
  对名称记得不太清楚的命令,可以输入开头的几个字母,然后按Tab键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。
  10. cell模式
  在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了。cell模式相当于将其中的代码拷贝到命令窗口中运行。两个%后接一个空格(%% )开始一个cell。将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter执行cell中的代码。
  执行cell中代码时不需要保存m文件,该m文件可以不在路径列表中。
  cell模式中,断点不起作用,当然,调用的子程序中的断点还是正常的。
参考技术A 矩阵A
先取出第一列 a=A(:,1);
在归一化:t=zscore(a);追问

谢谢,但是归一化以后列向量之和不应该是一吗,怎么求出来以后列向量之和是零了呢

追答

好像弄错了,这应该是标准化。
不好意思啊。
线性函数转换,表达式如下:

y=(x-MinValue)/(MaxValue-MinValue) (归一到0 1 之间)

y=0.1+(x-min)/(max-min)*(0.9-0.1)(归一到0.1-0.9之间)

说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值

去搜搜有很多的,也可以去matlab论坛看看

本回答被提问者采纳

模式识别 - 特征归一化 及 測试 代码(Matlab)

特征归一化 及 測试 代码(Matlab)


本文地址: http://write.blog.csdn.net/postedit/26221235


通过提取视频特征的程序, 从视频数据集中提取特征数据, 使用matlab进行计算每一列的最大值, 并进行列的归一化;

最后存储入txt的文本, 进行兴许处理.


代码:

%特征处理函数
%By C.L.Wang
%本程序是处理特征数据, 包含数据的归一化, 存储最大值向量, 和归一化的矩阵;
%并进行測试效果
%数据格式为第1列是标签, 2-end列是特征, 而且正样本在前, 负样本在后;
%% 提取特征数据
clc,clear;

train_file = load(‘features.txt‘);
label_data = train_file(:,1);
feature_data = train_file(:,2:end);
%% 最大值
max_data = max(abs(feature_data));
max_data(max_data==0) = 1;

max_data_feature = [[0,0,0],max_data]; %为了与曾经的标准统一
dlmwrite(‘violence_max_matlab.txt‘, max_data_feature, ‘ ‘);

morn_data = feature_data*diag(1./max_data); %归一化
%% 归一化特征
norm_data_feature = [label_data, morn_data];
dlmwrite(‘violence_norm_matlab.txt‘, norm_data_feature, ‘ ‘);
%% 验证 [归一化]
label_vector = label_data;
instance_matrix = norm_data_feature(:,2:end);

libsvm_options = ‘-t 2 -c 10 -g 1 -v 10‘;
svmtrain(label_vector, instance_matrix, libsvm_options);

输出:

Cross Validation Accuracy = 73.9027%


技术分享










以上是关于怎样用matlab进行列向量归一化?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 怎样进行数据归一化

matlab中怎样将矩阵归一化处理?

在python上数据归一化后怎样还原

模式识别 - 特征归一化 及 測试 代码(Matlab)

matlab中啥叫归一化坐标

matlab 矩阵怎么归一化