MATLAB 报错Subscripted assignment dimension mismatch.

[sx,sy] = size(X); Xi = zeros(sy+2,sx+2); Xi(2:sy+1,2:sx+1) = X;为什么报错说矩阵尺寸不一致?

for t=1:length(X0)

k(1,t)=t-1

end

k

for p=1:3

for q=1:3

Y_k_1(p,q)=b*exp(-a(p)*k(q))+c

这一串代码的问题:这里面的c是赋值一个数组,一个数和一个数组相加赋值给一个数,这是错误的。

Subscripted assignment dimension mismatch的意思就是:下标不匹配。

解决办法:更换赋值的内容,不对数组进行赋值。

扩展资料:

赋值的注意事项:

例如,给变量a赋值一个数为12,则格式为:a = 12 [注意:变量(即a)只能是一字母,而赋予的值可以是一个式子,当它是式子时,a的值就是这个式子的结果。

C语言规定,变量要先定义才能使用,也可以将定义和赋值在同一个语句中进行。

借助于F的绝对值φ,可以把分析学上的一些概念移植于F。设{αi}是F的一个序列。若对于每个实数ε>0,总有一个自然数n0,使得当m,n≥n0时,恒有φ(αm-αn)<ε,则称{αi}是(F,φ)的一个φ柯西序列。若对于序列{αi},有α∈F,使得当n≥n0时恒有 φ(αn-α)<ε则称{αi}是φ收敛的,而α称为它的φ极限。

若(F,φ)中每个φ柯西序列都是φ收敛的,则称F关于φ是完全的,或者说(F,φ)是完全域(complete field)。实数域R或复数域C关于通常的绝对值是完全的,而K.亨泽尔的P进数域Qp则是一个非阿基米德绝对值的完全域。对这两种域作统一的处理,正是发展赋值理论的一个主要出发点。F上所有形的级数,称为F上关于文字X的形式幂级数。按照通常的加、乘运算,它们组成一个域,称为F上的形式幂级数域,记作 F((x))。,以及ρ(0)=0,于是得到一个完全域(F((X)),φ)。

参考资料来源:百度百科-赋值

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-23

假设X=[1 2 3;4 5 6];

运行以下代码

X=[1 2 3; 4 5 6];
[sx,sy] = size(X);  
Xi = zeros(sy+2,sx+2);

各变量大小为

K>> whos
  Name      Size            Bytes  Class     Attributes

  X         2x3                48  double              
  Xi        5x4               160  double              
  fid       1x1                 8  double              
  fni       1x5                10  char                
  sx        1x1                 8  double              
  sy        1x1                 8  double

请看X,Xi的维数,尺寸不一致

追问

我上面写错了,是[sy,sx]=size(X)....可是Xi(2:sy+1,2:sx+1) = X这2个尺寸是一样的呀。。。也报错

追答

Xi(2:sy+1,2:sx+1) =X的意思是Xi依然有sy+2行,sx+2列,只是把2:sy+1行,2:sx+1列赋为0,其它的元素还存在

本回答被网友采纳
相似回答