matlab max函数说明

时间:2011-12-13 13:43:50

标签: arrays matlab math

有人可以解释一下Matlab中的以下代码是做什么的吗?

S = max(Smax/1e6,S);

Smax是标量,S是二维数组。

在文档中它说:" C = max(A,B)返回一个与A和B大小相同的数组,其中最大元素取自A或B.A和B的维度必须匹配,或者它们可能是标量。"

但我真的不明白。例如,当我查看数据时: Smax = 18.8919然后如果表格单元格= 0,如果表格单元格= 1.26794177568026,它将被1.88918608566891e-05替换,然后它被0.2374替换。为什么会这样?

Matrix之前:

0   0   0   0   0   0.00111506400432957 0.0530528652679544  0.0735632798530057  0.337940336906895   0.217390264464039   0.842200681286881   0.441492820596403   0.635889579407697   0.0282173990214626  0.628686747522517
0   0   0   0   0   0.00124231354963584 0.0292268862938039  0.307854738413881   0.642250450652130   0.895774237272530   0.955937999893653   1.02416313393959    1.43102268912588    1.28612042237543    0.854476003698339
0   0   0   0   0   0.00161382073055088 0.211968938444796   1.14984433303987    1.79814921306101    1.21125341085802    0.730742783435531   0.783994053903355   2.16496222396151    1.37726874308377    0.566007297543274
0   0   0   0   0   0.00219642315401969 0.333759445110180   1.41975817872937    2.93443500804371    0.423882373725561   1.72297295599714    2.10661511095899    1.23659139050992    0.299608689818999   1.27117497124802
0   0   0   0   0   0.00293437095181858 0.170826340853254   0.505706488974208   3.09277881791955    1.01375749953753    2.72388777599623    2.14043273302288    1.97540038269762    1.36646318061577    1.31241005396504



 Matrix after:

1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05
1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    0.0238758244166261  0.358389355882494   0.251630262469816   1.88918608566891e-05
1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    0.139626570638794   0.586757920960373   0.191655700200727   1.88918608566891e-05    1.88918608566891e-05    0.772402912785602   0.320102366342357   1.88918608566891e-05
1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    0.350486560441589   1.07651493323094    1.88918608566891e-05    0.544051261541669   0.745082446545145   0.212358715890953   1.88918608566891e-05    0.239941646971664
1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.88918608566891e-05    1.12906998061232    0.0136637242376597  1.00206018919932    0.761008020284666   0.680771103223579   0.312225781724240   0.271865182822984

1 个答案:

答案 0 :(得分:4)

首先,通常的做法是将标量变量作为矩阵的第二个参数,使其更容易阅读。

为了说明这应该如何工作,我会给你一些代码:

R = [0 1; 2 3];
Smax=1;
S=max(R,Smax)
% At this point, S will be equal to [1 1; 2 3];

将会发生的事情是,Smax以下的任何值都将被Smax取代。

实际上,这更像是最小值,即最小值是Smax。

至于你的具体问题,我可以获得更多信息,但我需要在你提供的声明之前和之后看看矩阵的样子。

相关问题