Давайте иметь матрицу M = [10 x 4 x 12]
. В качестве примера я беру M(:,:,4)
:Назначить значения с несколькими условиями
val(:,:,4) =
0 0 1 0
0 1 1 1
0 0 0 1
1 1 1 1
1 1 0 1
0 1 1 1
1 1 1 1
1 1 1 1
0 0 1 1
0 0 1 1
Как я могу получить это:
val(:,:,4) =
0 0 3 0
0 2 2 2
0 0 0 4
1 1 1 1
1 1 0 1
0 2 2 2
1 1 1 1
1 1 1 1
0 0 3 3
0 0 3 3
- Если у меня есть 1 в первом столбце, то все последующие 1 должен быть 1.
- Если У меня есть 0 в первом столбце, но 1 во втором, все последующие 1 должны быть равны 2.
- Если у меня есть 0 в первом и втором столбцах, а 1 в третьем, то все последующие 1-й шо uld be 3.
- Если у меня есть 0 в первых 3 столбцах, но 1 в четвертом, то этого должно быть четыре.
Примечание: Логическая матрица M
построена:
Tab = [reshape(Avg_1step.',10,1,[]) reshape(Avg_2step.',10,1,[]) ...
reshape(Avg_4step.',10,1,[]) reshape(Avg_6step.',10,1,[])];
M = Tab>=repmat([20 40 60 80],10,1,size(Tab,3));
Интересный и умный подход! – Divakar
Очень умный! – gmeroni
Мне нравится это использование 'max'! –