replacing values in matrices under some condition

I have 2 matrixs: pa and win and i would like to create a matrix pTW where: if in pa is not 0 set to pTW a value from win.
pTW(pa ~= 0) = win ; this does not work
pa =
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
44 26 20 0 0 0 0 0 0 0 14 61
94 48 48 0 0 0 0 0 0 0 20 112
114 66 60 0 0 0 0 0 0 0 21 201
144 80 48 0 0 0 0 0 0 0 28 52
135 110 0 0 0 0 0 0 0 0 25 20
168 102 0 0 0 0 0 0 0 0 18 0
168 70 0 0 0 0 0 0 0 0 0 0
88 0 0 0 0 0 0 0 0 0 0 0
win =
0 0 0 0 0 0.0083 0.0188 0 0 0 0 0
0 0 0 0 0 0.0181 0.0444 0 0 0 0 0
0 0 0 0 0 0.0236 0.0363 0 0 0 0 0
0 0 0 0 0.0040 0.0333 0.0376 0.0108 0.0042 0 0 0
0 0 0 0 0.0323 0.0444 0.0255 0.0349 0.0139 0 0 0
0 0 0 0 0.0296 0.0431 0.0430 0.0672 0.0194 0 0 0
0 0 0 0 0.0349 0.0528 0.0430 0.0860 0.0264 0 0 0
0 0 0 0 0.0309 0.0569 0.0376 0.1008 0.0347 0 0 0
0 0 0 0.0097 0.0255 0.0569 0.0914 0.0726 0.0431 0 0 0
0 0 0 0.0208 0.0323 0.0514 0.0645 0.0699 0.0500 0 0 0
0 0 0 0.0278 0.0390 0.0500 0.0591 0.0484 0.0681 0.0202 0 0
0 0 0.0108 0.0319 0.0511 0.0500 0.0726 0.0672 0.0597 0.0376 0 0
0 0 0.0242 0.0361 0.0484 0.0417 0.0780 0.0591 0.0611 0.0336 0.0042 0
0 0 0.0242 0.0403 0.0685 0.0444 0.0618 0.0847 0.0667 0.0538 0.0083 0
0 0 0.0349 0.0472 0.0565 0.0528 0.0484 0.0659 0.0861 0.0524 0.0153 0
0 0 0.0242 0.0389 0.0484 0.0556 0.0349 0.0995 0.0722 0.0497 0.0097 0
0 0.0015 0.0349 0.0542 0.0565 0.0569 0.0363 0.0712 0.0667 0.0591 0.0222 0
0 0.0238 0.0323 0.0597 0.0538 0.0514 0.0457 0.0578 0.0667 0.0847 0.0569 0
0 0.0312 0.0282 0.0708 0.0726 0.0556 0.0309 0.0040 0.0556 0.0645 0.0681 0
0.0094 0.0268 0.0376 0.0653 0.0470 0.0417 0.0444 0 0.0514 0.0726 0.0556 0.0013
0.0282 0.0402 0.0403 0.0708 0.0470 0.0375 0.0457 0 0.0472 0.0645 0.0347 0.0148
0.0349 0.0312 0.0403 0.0653 0.0269 0.0333 0 0 0.0347 0.0820 0.0625 0.0269
0.0363 0.0417 0.0591 0.0542 0.0336 0.0236 0 0 0.0250 0.0699 0.0319 0.0954
0.0457 0.0417 0.0618 0.0542 0.0309 0.0125 0 0 0.0250 0.0484 0.0597 0.0793
0.0444 0.0461 0.0565 0.0500 0.0376 0.0042 0 0 0.0139 0.0618 0.0347 0.0712
0.0605 0.0476 0.0806 0.0403 0.0363 0 0 0 0.0083 0.0336 0.0556 0.0726
0.0645 0.0625 0.0511 0.0417 0.0336 0 0 0 0 0.0470 0.0389 0.0269
0.0538 0.0670 0.0457 0.0333 0.0228 0 0 0 0 0.0309 0.0653 0.0645
0.0457 0.0506 0.0430 0.0319 0 0 0 0 0 0.0336 0.0347 0.0215
0.0457 0.0565 0.0376 0.0264 0 0 0 0 0 0 0.0611 0.0645
0.0457 0.0685 0.0282 0.0208 0 0 0 0 0 0 0.0569 0.0242
0.0430 0.0595 0.0376 0.0083 0 0 0 0 0 0 0.0611 0.0672
0.0457 0.0491 0.0269 0 0 0 0 0 0 0 0.0722 0.0618
0.0538 0.0446 0.0376 0 0 0 0 0 0 0 0.0264 0.0376
0.0591 0.0387 0.0269 0 0 0 0 0 0 0 0.0194 0.0820
0.0632 0.0357 0.0323 0 0 0 0 0 0 0 0.0139 0.0753
0.0511 0.0327 0.0269 0 0 0 0 0 0 0 0.0097 0.0901
0.0484 0.0298 0.0161 0 0 0 0 0 0 0 0.0097 0.0175
0.0363 0.0327 0 0 0 0 0 0 0 0 0.0069 0.0054
0.0376 0.0253 0 0 0 0 0 0 0 0 0.0042 0
0.0323 0.0149 0 0 0 0 0 0 0 0 0 0
0.0148 0 0 0 0 0 0 0 0 0 0 0

 採用された回答

the cyclist
the cyclist 2021 年 3 月 12 日
編集済み: the cyclist 2021 年 3 月 12 日

0 投票

You need to also select those specific elements from win, and also create pTW of the correct size, if it does not exist.
pTW = zeros(size(pa));
pTW(pa ~= 0) = win(pa ~= 0);

1 件のコメント

Aleksandra Ksiezyk
Aleksandra Ksiezyk 2021 年 3 月 13 日
Thank you so much !!! it works :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by