怎样用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进行列向量归一化?的主要内容,如果未能解决你的问题,请参考以下文章