%cwstd.m,用总和标准化法标准化矩阵
function std=cwstd(vector)
cwsum=sum(vector,1); %对列求和
[a,b]=size(vector); %矩阵大小,a 为行数,b 为列数
for i=1:a
for j=1:b
std(i,j)= vector(i,j)/cwsum(j);
end
end
%cwfac.m
function result=cwfac(vector);
fprintf('相关系数矩阵:\n')
std=CORRCOEF(vector) %计算相关系数矩阵
fprintf('特征向量(vec)及特征值(val):\n')
[vec,val]=eig(std) %求特征值(val)及特征向量(vec)
newval=diag(val) ;
[y,i]=sort(newval) ; %对特征根进行排序,y 为排序结果,i 为索引
fprintf('特征根排序:\n')
for z=1:length(y)
newy(z)=y(length(y)+1-z);
end
fprintf('%g\n',newy)
rate=y/sum(y);
fprintf('\n 贡献率:\n')
newrate=newy/sum(newy)
sumrate=0;
newi=[];
for k=length(y):-1:1
sumrate=sumrate+rate(k);
newi(length(y)+1-k)=i(k);
if sumrate>0.85 break;
end
end %记下累积贡献率大于85%的特征值的序号放入newi 中
fprintf('主成分数:%g\n\n',length(newi));
fprintf('主成分载荷:\n')
for p=1:length(newi)
for q=1:length(y)
result(q,p)=sqrt(newval(newi(p)))*vec(q,newi(p));
end
end %计算载荷
disp(result)
%cwscore.m,计算得分
function score=cwscore(vector1,vector2);
sco=vector1*vector2;
csum=sum(sco,2);
[newcsum,i]=sort(-1*csum);
[newi,j]=sort(i);
fprintf('计算得分:\n')
score=[sco,csum,j]
%得分矩阵:sco 为各主成分得分;csum 为综合得分;j 为排序结果
%cwprint.m
function print=cwprint(filename,a,b);
%filename 为文本文件名,a 为矩阵行数(样本数),b 为矩阵列数(变量指标数)
fid=fopen(filename,'r')
vector=fscanf(fid,'%g',[a b]);
fprintf('标准化结果如下:\n')
v1=cwstd(vector)
result=cwfac(v1);
cwscore(v1,result);
我执行了一下
cwprint(abc.txt,4,4)
???Undefined variable "abc" or class "abc.txt".
怎么解决?
matlab M文件调用参数
1、qwe.m中算出w矩阵后,添加一个save myMatrix w;这个语句,把w变量保存。2、然后在roly.m中,添加load myMatrix w;这个语句,之后在roly.m中直接使用w即可。MATLAB的m文件分为两种,一种为脚本文件,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是name.m 就在命令窗...
MATLAB 对于一个已完成的M文件(有输入和输出),如何创建一个GUI界面...
将gui中根据editbox输入的连个参数传递给计算函数 得到的8x3矩阵,顺序显示到gui的输出就可以了
怎样读取matlab中mat文件中一段指定长度的数据,有那个函数可以实现...
直接用load就可以了,最简单的s=load("文件名"),s是一个矩阵,其任意子结构都可以取到。在matlab中输入 help load,就能看到其使用帮助。S = LOAD(...) returns the contents of FILENAME in variable S. If FILENAME is a MAT file, S is a struct containing fields matching the variab...
matlab中一个m文件怎么调用另一个m文件的函数
1、首先要在笔记本电脑上安装好指定版本的matlab软件并双击打开。2、然后双击matlab图标打开其主页面,可以看到这个软件的按钮都是全英文单词的。3、那么创建m文件的方法就是鼠标移动到New按钮上单击一下,在弹出来的菜单中选择并点击Function这个选项。4、这个时候会看到跳出来一个新的Untitled*文件对话框,...
matlab怎么建立矩阵\/数据导入
方法二、用M文件建立矩阵 在命令窗口中输入edit,新建M文件,语法和直接输入法一样。然后保存。要使用时,在当前路径中我们可以看到这个M文件,右击,点”run“,M文件中的矩阵就加载到workspace中了。就可以直接使用这些变量。方法三、特殊矩阵 1.零矩阵:zeros(n,m) 2.一矩阵:ones(n,m) 3.单位...
matlab 怎样运行m文件?
直接用dos函数执行就可以了。举例说,如果批处理文件名 test_bat.bat,则[s,e]=dos('test_bat');就会执行批处理文件,直到其结束才返回。这里之所以让dos返回两个参数,是为了避免标准输出信息在命令窗口中回显。如果不希望等待执行完毕才返回,可以在命令后加一个“&”,例如:[s,e]=dos('test_...
MATLAB怎么保存为m文件
matlab建立m文件具体如下:1、打开电脑上的“matlab”软件。2、点击“新建”按钮,接着点击新建栏目下的“脚本”。3、新建一个脚本文件,在新建的脚本里,输入代码。4、此处绘制sinx的函数图像。5、点击“保存”按钮,保存函数,下面输入函数文件名。6、输入文件名后,点击下方的“保存”按钮,可以看到...
matlab 打开m文件以后 怎么看m文件的源代码
对原始明文图像进行8×8块的统一置乱不会改变8×8图像块内部的像素之间的空间相关性,能够保持后续编码的结构不变性 不会增加加密后压缩图像的数据,而且可以使得图像在视觉上看起来杂乱无章.量化后的DCT系数低频部分一般非零值较多,而高频部分为非零值较少,按照zig-zag扫描进行游程编码!
matlab程序中如何在M文件中定义一个m*n级矩阵?
A = zeros(m,n) 就是一个全零的mXn的矩阵了 A= ones(m,n) 就是一个全1的mXn矩阵。A = rand(m,n) 就是一个随机数的mXn矩阵 还有很多 如果你想要其他矩阵,可以用这几个函数组合一下。比如我要全部为2.5的矩阵 A = 2.5 * ones(m,n)
请问下面这段matlab代码如何运行?
(i) \/length (varargin{i});if list (i)>firstlevel num1=num1+1;elseif list (i)>secondlevel num2=num2+1;else num3=num3+1;end end 你原来那段代码有好多中文标点,我都改了一下,现在你把上面这段代码存为函数M文件;然后在命令窗口输入text() 括号里是变量,回车就行 ...