24小时热门版块排行榜    

查看: 1421  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 小鬼木木 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 278求调剂 +7 烟火先于春 2026-03-17 7/350 2026-03-21 15:22 by lature00
[考研] 299求调剂 +4 shxchem 2026-03-20 6/300 2026-03-21 11:54 by 无际的草原
[考研] 能源材料化学课题组招收硕士研究生8-10名 +5 脱颖而出 2026-03-16 15/750 2026-03-21 10:16 by 脱颖而出
[考研] 313求调剂 +3 肆叁贰壹22 2026-03-19 3/150 2026-03-21 08:01 by JourneyLucky
[考研] 一志愿天津大学化学工艺专业(081702)315分求调剂 +12 yangfz 2026-03-17 12/600 2026-03-21 03:30 by JourneyLucky
[考研] 二本跨考郑大材料306英一数二 +3 z1z2z3879 2026-03-17 3/150 2026-03-21 02:29 by JourneyLucky
[考研] 296求调剂 +6 www_q 2026-03-18 10/500 2026-03-20 23:56 by JourneyLucky
[考研] 321求调剂 +9 何润采123 2026-03-18 11/550 2026-03-20 23:19 by JourneyLucky
[考研] 295材料求调剂,一志愿武汉理工085601专硕 +5 Charlieyq 2026-03-19 5/250 2026-03-20 20:35 by JourneyLucky
[考研] 一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[考研] 286求调剂 +6 lemonzzn 2026-03-16 10/500 2026-03-19 14:31 by lemonzzn
[考研] 一志愿福大288有机化学,求调剂 +3 小木虫200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[考研] 085600材料与化工求调剂 +6 绪幸与子 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
[考研] 0703化学 305求调剂 +4 FY_yy 2026-03-14 4/200 2026-03-19 05:54 by anny19840123
[考研] 311求调剂 +6 26研0 2026-03-15 6/300 2026-03-18 14:43 by haxia
[考研] 312求调剂 +8 陌宸希 2026-03-16 9/450 2026-03-18 12:39 by Linda Hu
[考研] 材料工程专硕274一志愿211求调剂 +6 薛云鹏 2026-03-15 6/300 2026-03-17 11:05 by 学员h26Tkc
[考研] 302求调剂 +4 小贾同学123 2026-03-15 8/400 2026-03-17 10:33 by 小贾同学123
[考研] 11408 一志愿西电,277分求调剂 +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
[考研] 0856专硕279求调剂 +5 加油加油!? 2026-03-15 5/250 2026-03-15 11:58 by 2020015
信息提示
请填处理意见