[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003111] Re: NArrayMiss#[] の masking 対応
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:003111] Re: NArrayMiss#[] の masking 対応
- From: Seiya Nishizawa <seiya@xxxxxxxxxxxxxx>
- Date: Thu, 9 Jul 2009 10:49:10 +0900
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:from:date:x-google-sender-auth:message-id:subject:to :content-type:content-transfer-encoding; bh=yPHxkc5qZ0b6Wi0ZtVj9XX1ev6GRojHHTjR5S0aXdfA=; b=TkadShJxZ5QxKLlY3yepX9SM1Y6pGrOPDAKq+P2ITSJ2FdeYHnFLvmTrsZb1uWu/9J liad+4uT4TYBBe3v3SlcSiu4Xb00KSo8t7vqFKvqguogVzQe806I2i0AupIDHIu3pqut 3e1Lo1uMYqTsFHWRwm3v4FSOkmXnKq2MwxXIQ=
- Sender: seiyani@xxxxxxxxx
神代様
CVSにコミットしてもらってもいいですか?
西澤
2009/7/8 KOSHIRO Tsuyoshi <koshiro@xxxxxxxxxxxxxx>:
> 神代です.
>
> すみません, NArrayMiss#[]= のほうにも同じ問題があったので, そこも変え
> てみました. 新しいパッチ(CVS版に適用)を添付します.
> 問題なさそうであれば, 取り込んでいただければありがたいです.
>
> At Wed, 08 Jul 2009 15:40:11 +0900,
> KOSHIRO Tsuyoshi wrote:
>>
>> 神代です.
>>
>> NArrayで,
>>
>> irb(main):001:0> require "narray_miss"
>> => true
>> irb(main):002:0> a = NArray.int(5).indgen
>> => NArray.int(5):
>> [ 0, 1, 2, 3, 4 ]
>> irb(main):003:0> a[a.gt(2)]
>> => NArray.int(2):
>> [ 3, 4 ]
>>
>> のようにして masking するのをよく使いますが, NArrayMiss の場合だと,
>>
>> irb(main):004:0> b = NArrayMiss.int(5).indgen
>> => NArrayMiss.int(5):
>> [ 0, 1, 2, 3, 4 ]
>> irb(main):005:0> b.invalidation(3)
>> => NArrayMiss.int(5):
>> [ 0, 1, 2, -, 4 ]
>> irb(main):006:0> b[b.gt(2)]
>> IndexError: not allowed type
>> from /usr/local/lib/site_ruby/1.8/narray_miss.rb:263:in `[]'
>> from /usr/local/lib/site_ruby/1.8/narray_miss.rb:263:in `[]'
>> from (irb):6
>>
>> とエラーになります. 期待されるのは, 欠損のところは無視して
>>
>> irb(main):006:0> b[b.gt(2)]
>> => NArrayMiss.int(1):
>> [ 4 ]
>>
>> のような結果だと思います. 以下のパッチでどうでしょうか.
>>
>> # 現状でも b[b.gt(2).where] とすればできるのですが, NArray との整合性
>> # からこのようなこともできてほしいです
>>
>
>
--
Seiya Nishizawa
Department of Earth and Planetary Atmospheric Sciences, Kobe University
TEL : 078-803-5787
FAX : 078-803-5791