У меня есть таблица Excel, строки которой я хочу произвольно перемешать и использовать в Matlab. Для этого я читаю XLS в массив ячеек, генерирую случайные числа в столбце, а затем сортирую по этому столбцу. Это оказывается проблематичным из-за конфликтующих типов переменных. Код, который я использовал:
[num, txt, M] = xlsread(fileName);
for row=2:row_N % generate random numbers in the D column
M(row,4) = num2cell(rand);
end
M = sortrows(M,4);
Это приводит к тому, что моя матрица выглядит так:
![enter image description here](https://i.stack.imgur.com/pUpE8.jpg)
Поскольку столбец D содержит числа, в то время как в других столбцах есть текст, сортировка не может быть выполнена (там говорится: «Элементы ячейки должны быть символьными массивами»).
Я пробовал различные преобразования между числовыми переменными и переменными ячейки, а также пытался использовать «readtable» вместо «xlsread» - но всегда есть проблема, такая, что я не могу решить этот конфликт. Какие-либо предложения? Использование Matlab 2016a.