24小时热门版块排行榜    

查看: 1422  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 小鬼木木 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿东华大学控制学硕320求调剂 +3 Grand777 2026-03-21 3/150 2026-03-21 19:23 by 简之-
[考研] 求调剂 +5 十三加油 2026-03-21 5/250 2026-03-21 18:48 by 学员8dgXkO
[考研] 求调剂 +3 13341 2026-03-20 3/150 2026-03-21 18:28 by 学员8dgXkO
[考研] 268求调剂 +9 简单点0 2026-03-17 9/450 2026-03-21 15:37 by lature00
[考研] 材料学学硕080502 337求调剂-一志愿华中科技大学 +4 顺顺顺mr 2026-03-18 5/250 2026-03-21 10:22 by luoyongfeng
[考研] 一志愿山大07化学 332分 四六级已过 本科山东双非 求调剂! +3 不想理你 2026-03-16 3/150 2026-03-21 03:59 by JourneyLucky
[考研] 295求调剂 +4 一志愿京区211 2026-03-18 6/300 2026-03-20 23:41 by JourneyLucky
[考研] 药学383 求调剂 +3 药学chy 2026-03-15 5/250 2026-03-20 22:11 by 云游重阳
[考研] 290求调剂 +7 ^O^乜 2026-03-19 7/350 2026-03-20 21:43 by JourneyLucky
[考研] 材料学硕297已过四六级求调剂推荐 +11 adaie 2026-03-19 11/550 2026-03-20 21:30 by laoshidan
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[考研] 288求调剂,一志愿华南理工大学071005 +5 ioodiiij 2026-03-17 5/250 2026-03-19 18:22 by zcl123
[考研] 0703化学调剂 +4 18889395102 2026-03-18 4/200 2026-03-19 16:13 by 30660438
[考研] 收复试调剂生 +4 雨后秋荷 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 326求调剂 +5 上岸的小葡 2026-03-15 6/300 2026-03-17 17:26 by ruiyingmiao
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
[考研] 一志愿南京大学,080500材料科学与工程,调剂 +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[考研] 中科院材料273求调剂 +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
信息提示
请填处理意见