24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2163  |  回复: 8

wang1273

铁虫 (正式写手)

[求助] 求助用matlab编一个小程序

我想用matlab求光谱矩阵的极大线性无关向量组,请各位帮忙编一个程序,谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hhucy

实习版主 (著名写手)

DOE锅炉工

jjdg: 你说的很对 2011-12-29 00:27:29
lz以为我们是奥特曼么?
什么条件都没给。。。。。。。。。
人生那么多不确定,你怕什么
2楼2011-12-28 15:35:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fireoil

金虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg(金币+1): 感谢参与 2011-12-29 00:27:38
什么是光谱矩阵?

[ 发自手机版 http://muchong.com/3g ]
继续加油...
3楼2011-12-28 16:50:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhfzh

木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg(金币+1): 感谢参与 2011-12-29 00:27:51
wang1273(金币+5): 有帮助 2011-12-29 14:47:35
你用rref化为行最简形就能看出来了
4楼2011-12-28 23:13:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang1273

铁虫 (正式写手)

引用回帖:
: Originally posted by zhfzh at 2011-12-28 23:13:00:
你用rref化为行最简形就能看出来了

每一个样品在p 个波长点处的吸光度值, 可以视为一个p 维列向量, 这样n 个样品的光谱信息可以视为n 个p 维向
量, 即构成一个p ×n 光谱矩阵。
X =
x11 x12 ⋯ x1n
x21 x22 ⋯ x2n
⋯ ⋯ ⋯ ⋯
x p1 x p2 ⋯ x pn
  在进行模型校正时, 代表性样品, 即校正样品的选择问
题, 可以归结为求光谱矩阵的极大线性无关向量组。
能否帮忙变一下程序,谢谢!
5楼2011-12-29 15:03:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhfzh

木虫 (正式写手)

【答案】应助回帖

★ ★ ★
wang1273(金币+5): ★★★★★最佳答案 2011-12-30 14:58:38
余泽成(金币+3): 谢谢参与应助! 2011-12-30 20:47:50
%求矩阵的最大无关组
%数据文件格式说明
    %第一行 行数(n)  列数(m)
    %以后 矩阵元素
%************代码段****************************************************
clc     %清屏
clear all   %清除变量
%***************读入数据***************************************************
%打开文件,读取数据
[Filename,Pathname]=uigetfile('*.*','请打开数据文件');
fid=fopen([Pathname Filename],'r');
[data,count]=fscanf(fid,'%d',inf);
fclose(fid);
%**********************判断数据是否正确*********************************
[rdata,ldata]=size(data);
row=data(1,1);
col=data(2,1);
if ~(rdata)==0
    if  row*col+2==rdata
        fprintf('\n\n^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^\n');
        fprintf('           @数据导入成功!@\n');
        fprintf('        矩阵的维数为%dx%d\n\n',row,col);
        fprintf('^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^\n\n');
    else
        fprintf('\n\nvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n');
        fprintf('           @数据文件格式错误!@\n');
        fprintf('vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n\n');
        break;
    end
else
    fprintf('\nvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n');
    fprintf('               @文件打开失败!@\n');
    fprintf('vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n\n');
    break;
end
%*************处理矩阵*************************************************
%把数据放入mdata
mdata=zeros(row,col);
start=3;
for i=1:row
    mdata(i,1:col)=data(start:start+col-1,1)';
    start=start+col;
end
%求极大无关组
d_mdata=rref(mdata);
c=zeros(col,1);
for i=1:row
    for j=1:col
        if d_mdata(i,j)~=0
            c(j,1)=1;
            break
        end
    end
end
d_data=[];
k=1;
for i=1:col
    if c(i,1)==1
        d_data(:,k)=mdata(:,i);
        k=k+1;
    end
end
fprintf('行最简形为:\n');
d_mdata
fprintf('一个极大无关组为:\n');
d_data


睡前写了下,不会上传文件,自己复制吧

» 本帖已获得的红花(最新10朵)

6楼2011-12-30 07:47:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang1273

铁虫 (正式写手)

引用回帖:
: Originally posted by zhfzh at 2011-12-30 07:47:30:
%求矩阵的最大无关组
%数据文件格式说明
    %第一行 行数(n)  列数(m)
    %以后 矩阵元素
%************代码段****************************************************
clc     %清屏
clear all   %清 ...

非常感谢,由于我刚接触matlab,好多命令也不熟。代码段是什么意思?再次感谢!
7楼2011-12-30 16:36:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cmdblock

银虫 (正式写手)


jjdg(金币+1): 感谢发表意见 2012-01-05 03:11:12
matlab处理矩阵就是牛
8楼2012-01-04 08:46:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)


送鲜花一朵
jjdg(金币+1): 感谢发表观点 2012-01-08 00:48:37
引用回帖:
6楼: Originally posted by zhfzh at 2011-12-30 07:47:30:
%求矩阵的最大无关组
%数据文件格式说明
    %第一行 行数(n)  列数(m)
    %以后 矩阵元素
%************代码段****************************************************
clc     %清屏
clear all   %清 ...

编程风格很好啊,文件打开与失败时的符号都不一样,长见识了
往事并不如烟
9楼2012-01-07 22:42:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wang1273 的主题更新
信息提示
请填处理意见