Matlab 当矩阵元素是变量的时候,如何组合矩阵(急求!)

学习 时间:2026-04-09 03:00:47 阅读:5806
Matlab 当矩阵元素是变量的时候,如何组合矩阵(急求!)例如,我有一个矩阵:K1矩阵 a b c d是变量(syms a b c d;)a b c da b c d然后我建立一个新矩阵:K=zeros(8,8);之后我想把K1矩阵赋值到K矩阵中:K(1:4,1:2)=K1(1:4,1:2);之后就会出问题,无法赋值过去,

最佳回答

畅快的大白

震动的火龙果

2026-04-09 03:00:47

2问题:第一,k1是2*4的,所以k1(1:4,1:2)会出现超标,报错第二,如果事先定义k=zeros(8,8),则k是double的,再用符号赋值,会报错如果想赋值给k,也可以的:clear all;clc;syms a b c dk1=[a b c d];k1=repmat(k1,4,1);k(1:4,1:2)=k1(1:4,1:2); 再问: 谢谢,当时提问打的比较匆忙,出错难免。我的意思就是把K1这个矩阵放到K这个8x8的大矩阵的左上角,但是因为数据问题就出错了。你的解释我大概能理解,就是这个repmat这个命令是什么意思不太懂。能稍微详细的解释下吗?谢谢了先~~~ 再答: 这样的矩阵的赋值,在数值方法里是可以的,在符号里稍微不同 repmat命令就是按指定维上的数目铺放模块矩阵,形成更大的矩阵 repmat(k1,4,1);就是将看k1按照4行1列铺放,形成4行4列的矩阵 如果想显示8*8的矩阵,建议事先用符号定义一下,供参考: clear all;clc; syms a b c d e k1=[a b c d]; k1=[k1;k1]; k=[e];k=repmat(k,8,8); k(1:2,1:4)=k1(1:2,1:4);再问: 首先非常感谢!我之所以需要把小矩阵弄到大矩阵里面是因为小矩阵里面有变量,而大矩阵里面其实是由数字矩阵和变量矩阵加起来的,比如: a a a a+4 5 6 7 8 a a a a+4 5 6 7 8 a a a a+4 5 6 7 8 a a a a+4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 差不多像这样一个大矩阵。最终结果是关于a的一个式子。就是不知道这样数字混合着变量能一起赋值给大K矩阵吗? 再答: 可以的,方法也较多,但关键是要把k转换为sym的 至于怎么赋值,看你的习惯了,先定义一个小矩阵k1也可以 直接赋值也行: clear all;clc; syms a k=1:8; k=repmat(k,8,1); k=sym(k); k(1:4,1:3)=a; k(1:4,4)=a+k(1:4,4);

最新回答共有2条回答

  • 寂寞的舞蹈
    回复
    2026-04-09 03:00:47

    2问题:第一,k1是2*4的,所以k1(1:4,1:2)会出现超标,报错第二,如果事先定义k=zeros(8,8),则k是double的,再用符号赋值,会报错如果想赋值给k,也可以的:clear all;clc;syms a b c dk1=[a b c d];k1=repmat(k1,4,1);k(1:4,1:2)=k1(1:4,1:2); 再问: 谢谢,当时提问打的比较匆忙,出错难免。我的意思就是把K1这个矩阵放到K这个8x8的大矩阵的左上角,但是因为数据问题就出错了。你的解释我大概能理解,就是这个repmat这个命令是什么意思不太懂。能稍微详细的解释下吗?谢谢了先~~~ 再答: 这样的矩阵的赋值,在数值方法里是可以的,在符号里稍微不同 repmat命令就是按指定维上的数目铺放模块矩阵,形成更大的矩阵 repmat(k1,4,1);就是将看k1按照4行1列铺放,形成4行4列的矩阵 如果想显示8*8的矩阵,建议事先用符号定义一下,供参考: clear all;clc; syms a b c d e k1=[a b c d]; k1=[k1;k1]; k=[e];k=repmat(k,8,8); k(1:2,1:4)=k1(1:2,1:4);再问: 首先非常感谢!我之所以需要把小矩阵弄到大矩阵里面是因为小矩阵里面有变量,而大矩阵里面其实是由数字矩阵和变量矩阵加起来的,比如: a a a a+4 5 6 7 8 a a a a+4 5 6 7 8 a a a a+4 5 6 7 8 a a a a+4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 差不多像这样一个大矩阵。最终结果是关于a的一个式子。就是不知道这样数字混合着变量能一起赋值给大K矩阵吗? 再答: 可以的,方法也较多,但关键是要把k转换为sym的 至于怎么赋值,看你的习惯了,先定义一个小矩阵k1也可以 直接赋值也行: clear all;clc; syms a k=1:8; k=repmat(k,8,1); k=sym(k); k(1:4,1:3)=a; k(1:4,4)=a+k(1:4,4);

上一篇 【地理】农作物的熟制是由什么决定的

下一篇 谁能给我一个月考总结的作文啊