将常数c添加到矩阵特定部分的每个元素,避免循环

时间:2014-09-16 14:03:50

标签: matlab

我有一个返回值的mxn矩阵X,其中我想为原始矩阵X的下一个子矩阵Y的每个元素添加一个常量项c。

Y = X(end-4:end,:)

是否有可能避免循环?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

生成一些样本数据

X = rand(6,6)

X =

   0.9696054   0.7389534   0.7440913   0.2781074   0.0622399   0.0154607
   0.8043438   0.8845991   0.1999374   0.2341657   0.6345166   0.8774855
   0.0092971   0.1108798   0.1118406   0.6249466   0.3932468   0.4050876
   0.6970928   0.1084640   0.0937833   0.8243776   0.7633255   0.0650740
   0.3161001   0.4452197   0.1290970   0.5837050   0.5709813   0.2331514
   0.0739229   0.5626630   0.8300330   0.9590604   0.0852536   0.0225583

Y=X这样XY将具有相同的尺寸,并且可以很容易地看到添加发生的位置。这是出于显示目的,真的。

   Y=X;

将常量添加到所需的元素,按元素

Y(end-4:end,:) = X(end-4:end,:)+4
Y =

   0.969605   0.738953   0.744091   0.278107   0.062240   0.015461
   4.804344   4.884599   4.199937   4.234166   4.634517   4.877485
   4.009297   4.110880   4.111841   4.624947   4.393247   4.405088
   4.697093   4.108464   4.093783   4.824378   4.763326   4.065074
   4.316100   4.445220   4.129097   4.583705   4.570981   4.233151
   4.073923   4.562663   4.830033   4.959060   4.085254   4.022558

相关元素现在比原来大四倍。