2013-03-01 4 views
0

배열 (time)에 부동 값이 있습니다. 이 배열의 요소를 빼고 다른 배열에 결과를 저장하고 추가로 인쇄하려고합니다.동일한 배열의 다른 요소에서 배열 요소를 뺍니다.

time=Array.new 

time=open("/home/sakshi/Desktop/test/PACKET-WISE_DETAILS/pkt_time.tsv", &:read) 

time.each do |i| 
    puts time[i+1]-time[i] 
end 

하지만 난이 오류가 무엇입니까 : 나는 또한 while 루프 위의 코드를 다시 작성하려

'in `+': can't convert Fixnum into String (TypeError) ' error. 

하지만 그 중 하나를 작동하지 않습니다 나는 다음 시도했다.

+0

무슨 일을이 밖으로 시도? 'P 시간'을하십시오. 또한 어떤 버전의 루비가 있습니까? – AJcodez

+0

시간은 pkt_time 파일의 값을 가져 오는 내 배열입니다. 그러나 그것은 잘못된 가치관을 가지고 있습니다. 파일을 잘못 읽은 건가요? – user1914693

+0

나는 루비 1.8.7 (2010-08-16 패치 레벨 302) [i686-linux] – user1914693

답변

0

는 정수 값 즉, 오브젝트 ID를 위해 추가되기 때문에 이것은, 시간에

time = Array.new 

time = open("/home/sakshi/Desktop/test/PACKET-WISE_DETAILS/pkt_time.tsv", &:read) 

time.each_with_index do |i,index| 

puts time[index+1]-time[index] if index < time.size #to avoid overflow when reaches the end 

end 
+0

와 함께 일하고있다. 아직 작동하지 않는다. 다음과 같은 에러가 난다. pkt_time.rb : 19 : 정의되지 않은 메소드'- ' 문자열 (NoMethodError) pkt_time.rb에서 \t : 57 :'each_with_index에서 "2"에 대한 '18 pkt_time.rb에서 \t'에서 각 'pkt_time.rb에서 \t : 18 :'each_with_index' 의 \t pkt_time.rb : 18 – user1914693

+0

시간이 있기 때문에 [색인 + 1] 내용 문자열 개체가 될 수 있습니다. to_f를 사용하여 float로 변환 해보십시오. 또한 유효한 번호인지 다시 확인하십시오. –

+0

고마워요 .. !!!! 내 문제는 to_f로 해결되었습니다. – user1914693

관련 문제