[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000217] NumArray prototype in ruby



��Ƿ��Ǥ���

NumArray �� ruby �ˤ��ץ��ȥ����פλ���ʡ�Ĺ��..�ˤ��äƤ�
�ޤ�����

  ftp://dennou-t.ms.u-tokyo.ac.jp/arch/davis/ex/2000-02-06-horinout/

�ʲ��� num_array-20000206.tar �ޤ��Ϥ���Ÿ���ե����� num_array/ �Ǥ���
����ˡ�� numarray.rb �κǸ�Υƥ�����ʬ�򻲾Ȥ��Ƥ����������¹Ԥ�

  % ruby numarray.rb

�Ǥ���

�����ä���Τϡ����Ĥ� NMDArray �ȾΤ��ƺ�ä���Τȴ���Ū��Ʊ
���Ǥ������㴳�������ޤ���

��0. ̾��

�켡������   BasicNumArray
¿��������   NumArray

��1. ���饹����

���֥��å�����Ȥ�Ȥ���ɬ�פʡ������ź���פ򥯥饹 ArrayIndex 
�Ȥ�����Ω�����ޤ������ܤ����� README_arrayindex �򻲾ȡ�

��2. �ޥ�����

����ǥå����Ȥ��� true �� false(�ޤ���nil) ����ʤ������������
������褦�ˤ��ޤ�����true�ΤȤ����������Ф�����([]�᥽��
�ɤ�)���񤭹������([]=�᥽�åɤ�)���뤿��Ǥ�����ä� 
BasicNumArray �Ǥ����������б������Τ��ߤ����Ǥ����פ� true �� 
false �����̤Ǥ���Ф����ΤǼ��Τ������Ǥ⹽���ޤ��󤬡���ä���
�ʤ��ΤǥХ��ȷ����ߤ����Ǥ� �� ���Ȥ��󤵤󡣤��ʤߤ���������
�����ɤ����ϥ᥽�å� logical? �� true ���֤������Τˤ� flase�ޤ�
��nil�ʳ����֤��ˤ��ɤ�����Ƚ�ꤷ�Ƥ��ޤ����ǡ�mask �����Ǥ� 
false/nil �ʳ��Υ���ǥå��������򤷤ޤ����פ���˳����Ǥ� if ��
Ŭ�Ѥ���Ƚ�̤��Ƥ���ˡ�

�ޥ����󥰤μ�����ӤȤ��������������� if �����ꤷ�Ƥ��ޤ���
Fortran90�ʤ� where ��ʸ�ǹԤ����Ȥ��������ޤ������Τ�����ӱ黻
�᥽�å� le (=less or equal), gt (=greater than) �������������
�������֤��褦�ˤ��Ƥ��ޤ����㤨��

   a[a.le(0.0)] = 0.0 

������ a ������ͤ򥼥��ˤ��ޤ��������

   mask = a.le(0.0) ; a[mask] = 0.0

��Ʊ���Ǥ����᥽�åɤΥ��å��Ͼ�ά�Ǥ��ޤ��Τǡ�a[a.le 0.0]=0.0 
�Ȥ�񤱤ޤ����ޤ� and, or �黻�᥽�åɤϤ��줾�� and_ �� or_ ��
��(�������������������)��"le" �������˱黻�� "<=" ����������
�뤳�Ȥ�ͤ����ޤ�����&&,||,and,or �Ϻ�����Ǥ��ޤ���<= ���
����ɬ�� (a <= b) && (b <= c) �Ƚ񤯥Х���Ǻ�ޤ���ޤ����顢����
���ۤ��������Ǥ���

�ޥ����󥰤ϳƼ����˴ؤ��Ƥ�Ŭ�ѤǤ��ޤ����㤨�Ф���ʴ�����

  u_NH_average = u_wind[ true , lat.gt 0 ].average

��average��̤�����Ǥ�������ǥå����� true �� 0..-1 ��Ʊ��������
�򡣡�


��3. NMDArray �Τ����Ĥ��ε�ǽ (transpose�Ȥ�������ĥ��ʿ�ѤȤ�) 
   ��̤������


��Ƿ�� ��                 horinout@xxxxxx
�������Ķ�������ȸ��楻�󥿡�    611-0011 �����Ըޥ���
phone:0774-38-3812                     fax:0774-31-8463