объяснение функции maxlab max - PullRequest
       1

объяснение функции maxlab max

0 голосов
/ 13 декабря 2011

Может кто-нибудь объяснить мне, что делает следующий фрагмент кода в Matlab?

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

Где Smax - скаляр, а S - двумерный массив.

В документации говорится, что: «C = max (A, B) возвращает массив того же размера, что и A и B, с наибольшими элементами, взятыми из A или B. Размеры A и B должны совпадать, или они может быть скалярным. "

Но я не совсем понимаю. Например, когда я смотрю на данные и: Smax = 18.8919, тогда, если ячейка таблицы = 0, она заменяется на 1.88918608566891e-05, если ячейка таблицы = 1.26794177568026, тогда она заменяется на 0.2374. Почему это происходит?

Матрица перед:

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 Ответ

4 голосов
/ 13 декабря 2011

Прежде всего, принято ставить скалярную переменную в качестве второго аргумента матрицы, чтобы ее было легче читать.

Чтобы проиллюстрировать, как это должно работать, я дам вам немного кода:

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.

Что касается вашей конкретной проблемы, я мог бы получить больше информации, но мне нужно было бы посмотреть, как выглядит матрица до и после предоставленного вами утверждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...