Я пытаюсь найти самый большой вектор внутри матричного соединения по векторам с помощью MATLAB, однако у меня возникают некоторые трудности, поэтому я был бы очень благодарен, если бы кто-нибудь мне помог. У меня есть это:
Матричные пути (решение функции Дейкстры), представляющие собой матрицу 1000x1000, значениями которой являются векторы из 1 строки и разного количества столбцов (когда столбцов больше 10, значения отображаются как «1x11 double, 1x12 double и т. д.). "). Пути матрицы имеют следующий вид:
1 2 3 ....
1 1 <1x20 double> <1x16 double>
2 <1x20 double> 2 [2,870,183,492,641,863,611,3]
3 <1x16 double> [3,611,863,641,492,183,870,2] 3
4 <1x25 double> <1x12 double> <1x14 double>
.
.
.
Сначала я думал просто найти наибольший вектор в матрице с помощью
B = max(length(paths))
Однако MATLAB возвращает B = 1000, значение, которое допустимо, но маловероятно. При попытке узнать положение вектора с помощью:
[row,column] = find(length(paths) == B)
MATLAB возвращает строку = 1, столбец = 1, что, безусловно, неверно... Я подумал, что, возможно, это проблема того, как MATLAB берет данные. Как будто он не рассматривает элементы матрицы как векторы, потому что когда я ввожу:
length(paths(3,2))
Он возвращает мне 1, но он должен вернуть 8, как я понимаю, также при введении:
paths(3,2)
Он возвращает [1x8 double]
, но я ожидаю увидеть весь вектор. Я не знаю, что делать, может быть, цикл «для», я действительно не знаю, принимает ли MATLAB данные матрицы как векторы или как простые двойные значения.
class(paths)
? - person bla   schedule 11.04.2014