24小时热门版块排行榜    

查看: 1547  |  回复: 7

小鬼木木

新虫 (小有名气)

[求助] 已知多组数据,求矩阵中参数 已有1人参与

如附件中图片要求,用MATLAB求取参数,求大神!

已知多组数据,求矩阵中参数
图片1.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdl9527

专家顾问 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
小鬼木木: 金币+20, ★★★★★最佳答案 2017-01-12 09:02:35
只有8个未知数但是却有16个方程?
这种解线性方程组的问题用左除就可以搞定了,举个例子。
4x1-x2+x3=5;
-18x1+3x2-x3=-15;
x1+x2+x3=6;;
求x1 x2 x3
CODE:
a=[4 -1 1;-18 3 -1; 1 1 1];
b=[5 -15 6]';
x=a\b

2楼2017-01-09 21:11:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小鬼木木

新虫 (小有名气)

引用回帖:
2楼: Originally posted by pdl9527 at 2017-01-09 21:11:02
只有8个未知数但是却有16个方程?
这种解线性方程组的问题用左除就可以搞定了,举个例子。
4x1-x2+x3=5;
-18x1+3x2-x3=-15;
x1+x2+x3=6;;
求x1 x2 x3

a=;
b=';
x=a\b
...

谢谢您的解答,而我的意思是,我接下来可能会有很多这样的数据,怎么用MATLAB把表中数据直接带入矩阵方程中,而不是用手动输入?
3楼2017-01-10 18:38:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdl9527

专家顾问 (小有名气)

【答案】应助回帖

引用回帖:
3楼: Originally posted by 小鬼木木 at 2017-01-10 18:38:32
谢谢您的解答,而我的意思是,我接下来可能会有很多这样的数据,怎么用MATLAB把表中数据直接带入矩阵方程中,而不是用手动输入?...

所以问题的关键是如何读取excel中的数据然后赋值给x,y,u,v。
由于不知道你的excel文件的具体格式,我根据你的图片做了一个excel并且编写了相应的数据提取和计算程序,希望对你有启发。
CODE:
function question_19
%2017-1-10
clear;clc
%注意修改路径
[~,text,~]=xlsread('X:\My Desktop\data.xlsx');
count=1;
for k=1:size(text,1)
    num=text{k,1};
    if isempty(num) || isempty(str2num(num(2:strfind(num,',')-1)))
        continue;
    end
    for i=1:size(text,2)
        num=text{k,i};
        div=strfind(num,',');
        a(count,i)=str2num(num(2:div-1));
        b(count,i)=str2num(num(div+1:end-1));
    end
    count=count+1;
end
%以上程序用来提取数据,以下程序用来计算参数
x=a(1,:);
y=b(1,:);
u=a(2,:);
v=b(2,:);
row1=[x' y' ones(8,1) zeros(8,3) -(x.*u)' -(y.*u)'];
row2=[zeros(8,3) x' y' ones(8,1) -(x.*v)' -(y.*v)'];
%由于只需要8个方程就可以了,所以存在多种计算参数的方法。
x1=row1\u'
x2=row2\v'

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : data.xlsx
  • 2017-01-10 22:03:49, 9.89 K
4楼2017-01-10 22:05:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小鬼木木

新虫 (小有名气)

引用回帖:
4楼: Originally posted by pdl9527 at 2017-01-10 22:05:11
所以问题的关键是如何读取excel中的数据然后赋值给x,y,u,v。
由于不知道你的excel文件的具体格式,我根据你的图片做了一个excel并且编写了相应的数据提取和计算程序,希望对你有启发。


function question_19 ...

真的太感谢你了,学习了,谢谢!
5楼2017-01-11 16:30:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小鬼木木

新虫 (小有名气)

引用回帖:
4楼: Originally posted by pdl9527 at 2017-01-10 22:05:11
所以问题的关键是如何读取excel中的数据然后赋值给x,y,u,v。
由于不知道你的excel文件的具体格式,我根据你的图片做了一个excel并且编写了相应的数据提取和计算程序,希望对你有启发。


function question_19 ...

你好,我还有些地方不太会,还需要请教你一下。对照我上传的图片中的矩阵方程,按照你上面做出来的是
x1 y1 1 0 0 0 ...
x2 y2 1 0 0 0...
     .......
0 0 0 x1 y1 1 ...
0 0 0 x2 y2 1...
      .......
这样的一个顺序对吧?
而我原本的意思是想要如下这样一个顺序,又该如何修改呢?
x1 y1 1 0 0 0 ...
0 0 0 x1 y1 1 ...
x2 y2 1 0 0 0 ...
0 0 0 x2 y2 1 ...
      .......
不知道我有没有讲清楚我的问题。。。。。。
6楼2017-01-11 20:05:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdl9527

专家顾问 (小有名气)

引用回帖:
6楼: Originally posted by 小鬼木木 at 2017-01-11 20:05:14
你好,我还有些地方不太会,还需要请教你一下。对照我上传的图片中的矩阵方程,按照你上面做出来的是
x1 y1 1 0 0 0 ...
x2 y2 1 0 0 0...
     .......
0 0 0 x1 y1 1 ...
0 0 0 x2 y2 1...
      .......
...

我是把u和v拆开来算的,因为只有8个未知数,只需要用u或者v两者中的1个矩阵方程组(各有八个方程)就可以求出来,第一行乘以未知数就等于u,第二行乘以未知数就等于v,你说的是同时通过u和v来求,但是这样就有16个方程,所以u,v不能全用,只能各用4个,如果非要改的话,程序如下:
CODE:
function question_19
%2017-1-12
clear;clc
[~,text,~]=xlsread('X:\My Desktop\data.xlsx');
count=1;
for k=1:size(text,1)
    num=text{k,1};
    if isempty(num) || isempty(str2num(num(2:strfind(num,',')-1)))
        continue;
    end
    for i=1:size(text,2)
        num=text{k,i};
        div=strfind(num,',');
        a(count,i)=str2num(num(2:div-1));
        b(count,i)=str2num(num(div+1:end-1));
    end
    count=count+1;
end
x=a(1,:);
y=b(1,:);
u=a(2,:);
v=b(2,:);
row_m=zeros(16,8);
row_m(1:2:end,:)=[x' y' ones(8,1) zeros(8,3) -(x.*u)' -(y.*u)'];
row_m(2:2:end,:)=[zeros(8,3) x' y' ones(8,1) -(x.*v)' -(y.*v)'];
uv_m=zeros(16,1);
uv_m(1:2:end,:)=u';
uv_m(2:2:end,:)=v';
x=row_m(1:8,:)\uv_m(1:8)

7楼2017-01-11 20:34:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小鬼木木

新虫 (小有名气)

引用回帖:
7楼: Originally posted by pdl9527 at 2017-01-11 20:34:52
我是把u和v拆开来算的,因为只有8个未知数,只需要用u或者v两者中的1个矩阵方程组(各有八个方程)就可以求出来,第一行乘以未知数就等于u,第二行乘以未知数就等于v,你说的是同时通过u和v来求,但是这样就有16个 ...

谢谢你,这次都明白了,非常感谢!
8楼2017-01-12 09:02:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小鬼木木 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 2026国自然放榜时间 +3 布布和一二 2026-08-08 3/150 2026-08-08 18:15 by Lightingo
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 qTvzQBRAHjCi 2026-08-07 4/200 2026-08-08 17:27 by oEVWOejN9taj
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 qTvzQBRAHjCi 2026-08-07 5/250 2026-08-08 17:02 by oEVWOejN9taj
[考博] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 16:27 by oEVWOejN9taj
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 16:22 by oEVWOejN9taj
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 16:19 by oEVWOejN9taj
[博后之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 16:02 by oEVWOejN9taj
[论文投稿] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 Vi50GxzrFcSG 2026-08-07 6/300 2026-08-08 15:07 by oEVWOejN9taj
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 WQyTGMbfH7Cx 2026-08-07 4/200 2026-08-08 15:02 by oEVWOejN9taj
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 HEQlVqMTIA7d 2026-08-07 6/300 2026-08-08 14:47 by oEVWOejN9taj
[基金申请] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 4/200 2026-08-08 14:27 by oEVWOejN9taj
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 KXLV3nuBVBY7 2026-08-07 5/250 2026-08-08 14:07 by oEVWOejN9taj
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 3/150 2026-08-08 03:47 by 6vVgjDL4CnGu
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 什么时候能放榜呀? +3 Jacob678 2026-08-03 3/150 2026-08-03 16:14 by gltch
信息提示
请填处理意见