Предположим, у меня есть ячейка под названием data
с тремя элементами. Каждый элемент ячейки содержит матрицу (n x 2). Первый столбец каждой ячейки в data
является идентификатором данных рядом с ним, а второй столбец - фактическими данными. Обратите внимание, что фактический data
, с которым я работаю, не состоит из rand
номеров, но это конкретные конкретные цифры.Как переставить содержимое ячеек в одну матрицу в Matlab
data = cell(1,3);
data{1} = [1 rand ;
2 rand ;
3 rand ;
4 rand];
data{2} = [2 rand ;
3 rand ;
4 rand ;
5 rand ;
6 rand];
data{3} = [2 rand ;
5 rand ;
6 rand ;
7 rand ;
8 rand ;
9 rand];
Я хочу изменить содержимое data
в матрицу под названием rearrange
, как показано ниже. Как вы можете видеть, ID 1
существует только в data{1}
, поэтому rand
считается равным нулю в третьем и четвертом столбцах первой строки в rearrange
. Как вы можете видеть, ID 9
существует только в data{3}
, поэтому rand
считается равным нулю во втором и третьем столбцах девятой строки в rearrange
.
rearrange = [1 rand 0 0 ;
2 rand rand rand ;
3 rand rand 0 ;
4 rand rand 0 ;
5 rand rand rand ;
6 0 rand rand ;
7 0 0 0 ;
8 0 0 rand ;
9 0 0 rand];
В этом случае уникальные идентификаторы 1:9
, но я хочу, чтобы автоматизировать список уникальных идентификаторов, а не просто сказать 1:9
.
Возможного дубликат [Регистрации матриц в MATLAB] (HTTP: // StackOverflow. com/questions/10981570/join-matrices-in-matlab) – beaker
сторона примечание, 'rebrange' - встроенная функция matlab, поэтому не следует использовать как имя переменной, если возможно – Trogdor
@Trogdor Я думаю, что я могу использовать более старую версия, где 'resrange', похоже, не существует (2015a). В следующий раз я буду осторожен. – Senyokbalgul