matlab - как сформировать вывод матрицы - PullRequest
1 голос
/ 18 октября 2019

Я использовал следующие команды

Arrival_A_PB_VS_PB_ID=[Arrival_A_PB_VS_PB_ID;[PB_ID,time]]; 
Arrival_A_PB_VS_PB_ID2 = vec2mat(Arrival_A_PB_VS_PB_ID,10,4);
Arrival_A_PB_VS_PB_ID2(Arrival_A_PB_VS_PB_ID2==0)=[];



       1        1610           2        1615           3        1620           4        1625           5        1630
       6        1635           7        1640           8        1645           9        1650          10        1655
      11        1660          12        1665          13        1670          14        1675          15        1680
      16        1685          17        1690          18        1695          19        1700          20        1705

это результат, который я получаю, но есть ли возможность получить результаты в следующем порядке:

1 1610    6 1635     11 1660
2 1615    7 1640      12 1665

и т. Д. на...? Я имею в виду как-то отсортировано

1 Ответ

1 голос
/ 19 октября 2019

Небольшой обход через 3d матрицу помогает. Ввод после первой строки, вероятно, следующий: Arrival_A_PB_VS_PB_ID=[[1:20].',[1610:5:1705].']

1) Изменить форму, чтобы 1: 5 можно было найти вместе в одном ряду (независимо от того, в каком измерении) y=reshape(Arrival_A_PB_VS_PB_ID,5,4,2)

2)Вы хотите матрицу 4х10. Измените размер до предполагаемого размера и предварительно измените данные, чтобы все закончилось так, как должно. z=reshape(permute(y,[2,3,1]),4,10)

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