0
Matlab을 사용하여 크기가 1xn 인 임의의 배열에서 가장 긴 연속 시퀀스의 크기를 찾고 싶습니다. 나는 이것을 할 수있는 두 가지 방법이 있다는 것을 알고있다 : 1) 루프를 사용하고 2) Matlab 함수를 사용한다. 찾을 수 있지만 둘 다 사용하지 않고이 작업을 수행하는 방법은 확실하지 않습니다.matlab을 사용하여 1xn 크기의 무작위 배열에서 가장 긴 연속 시퀀스의 크기 찾기
E.G. [1 2 3 5 8 9 10 11 12 13 14 17]
이에서 가장 긴 순서는 내가이 시도 5.
크기의 것 10 11 12 13 14 것이다 그러나 그것은 작동하지 않습니다
function [start, finish] = longest(sequence)
x = diff(t)==1;
f = find([false,x]~=[x,false]);
g = find(f(2:2:end)-f(1:2:end-1)>=N,1,'first');
으로 대체하십시오. 덕분에 문제를 해결할 수있었습니다. 제 친구가 diff와 max 함수를 사용하지 않고 그냥 루프 (예 :)로 처리하는 것이 가능할 것이라고 언급했지만 어디에서 시작해야할지 모르겠습니까? 루프를 작성하여 각 시퀀스의 길이를 계산하고 저장 한 다음 더 긴 시퀀스를 찾으면 그 길이를 바꾸는 선을 따라 뭔가를 추측합니다. 어떻게 이걸 쓸거야? –
MATLAB이 일반적으로 벡터화에 최적화되어 있다는 점을 감안하면 그럴 가치가 없습니다. MATLAB이 모든 것을 하나씩 할 수있게 할 때, 한 번에 벡터 요소 하나를 통과 할 이유가 없습니다. – craigim