MATLAB을 사용하여 벡터로 행렬 화합물에서 가장 큰 벡터를 찾으려고합니다.하지만 몇 가지 어려움이 있습니다. 누군가 도움이된다면 매우 감사 할 것입니다. 나는 이것을 가지고있다 :행렬 내에서 가장 큰 벡터 찾기
값이 1 행과 다른 열 수의 벡터 인 1000x1000 행렬 인 행렬 경로 (Dijkstra 함수의 해) (열이 10보다 큰 경우 값은 "1x11 더블, 1x12 더블 등"). 처음에는
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>
.
.
.
나는 그러나 MATLAB은 B = 1000, 가능하다 값,하지만 가능성이없는을 반환 단지
B = max(length(paths))
에 의해 매트릭스에서 가장 큰 벡터를 찾는 생각 : 행렬의 경로는이 양식을 가지고 . 사용하여 벡터의 위치를 알아 내려고 할 때 :
[row,column] = find(length(paths) == B)
MATLAB 반환 확실히 잘못된 행 = 1, 열 = 1, ... 어쩌면 MATLAB 걸리는 방법에 문제가 있음을 생각 자료. 이 벡터와 행렬의 항목을 고려하지 않습니다처럼 입력하면 때문이다 :
length(paths(3,2))
그것은 나에게 하나를 반환하지만 내가 이해 도입 할 때 그것은 또한, 8을 반환해야합니다 :
paths(3,2)
[1x8 double]
을 반환하지만 전체 벡터를 볼 것으로 예상됩니다. 나는 "for"루프를 어떻게해야할지 모르겠다. MATLAB이 행렬의 데이터를 벡터 또는 단순한 double 값으로 취하는지는 정말로 모른다.
당신이 무엇을받을 수 있나요'? – bla
세포, 그럼, 그것은 세포의 매트릭스입니다.하지만 그것은 두 배의 값처럼 보입니다. – user2822577