各成分の modf の計算

Namespace: FVIL.Data
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public virtual void modf(
	CFviMatrix dsti,
	CFviMatrix dstf
)
Visual Basic
Public Overridable Sub modf ( 
	dsti As CFviMatrix,
	dstf As CFviMatrix
)

Parameters

dsti
Type: FVIL.Data..::..CFviMatrix
出力行列 (整数成分)
dstf
Type: FVIL.Data..::..CFviMatrix
出力行列 (小数成分)

Return Value

Type:
現在の行列の各成分に対して modf を計算し、 整数部を dsti に 小数部を dstf に格納して返します。

Remarks

現在の行列と dstidstf の次元が等しくなければ内部で再確保します。 dstidstf はどちらか一方を省略することが可能です。 省略する場合は null を指定してください。 両方に null を指定した場合は例外を発行します。

生成に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:

ErrorCode メンバ内容
51FVIL.ErrorCode.LICENSE_ERRORライセンスがありません。
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリの確保に失敗しました。
11FVIL.ErrorCode.INVALID_PARAMETERパラメータが不正です。
12FVIL.ErrorCode.INVALID_OBJECTメモリが確保されていません。
29FVIL.ErrorCode.NOT_CALCULABLE計算できません。

関連する FIE 関数:

fnFIE_mat_modf

Examples

ソースコード:
C# Copy imageCopy
//    $Revision: 1.2 $

using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;    // FvPluginXXXX attribute requires fvalgcli

namespace User.SampleCode
{
    public partial class Matrix
    {
        /// <summary>
        /// 各成分のmodf の計算.
        /// </summary>
        [FvPluginExecute]
        public void modf()
        {
            int rows = 3;
            int columns = 3;
            // 1) インスタンスの準備.
            FVIL.Data.CFviMatrix mat = new FVIL.Data.CFviMatrix(rows, columns);
            FVIL.Data.CFviMatrix mat_dsti = new FVIL.Data.CFviMatrix();
            FVIL.Data.CFviMatrix mat_dstf = new FVIL.Data.CFviMatrix();

            // 2) 行列の要素の設定.
            mat[0, 0] = -0.1; mat[0, 1] = 0.2; mat[0, 2] = -0.3;
            mat[1, 0] = 1.1; mat[1, 1] = -1.2; mat[1, 2] = 1.3;
            mat[2, 0] = -2.1; mat[2, 1] = 2.2; mat[2, 2] = -2.3;

            // 3) 計算実行.
            mat.modf(mat_dsti, mat_dstf);

            // 確認) 処理結果の出力.
            Console.Write("CFviMatrix.modf\n");
            for( int row = 0; row < mat_dsti.Rows; row++)
            {
                for (int column = 0; column < mat_dsti.Columns; column++)
                {
                    Console.Write("dsti[{0}][{1}]={2} ", row, column, mat_dsti[row, column]);
                }
                Console.Write("\n");
            }
            for( int row = 0; row < mat_dstf.Rows; row++)
            {
                for (int column = 0; column < mat_dstf.Columns; column++)
                {
                    Console.Write("dstf[{0}][{1}]={2} ", row, column, mat_dstf[row, column]);
                }
                Console.Write("\n");
            }
        }    
    }
}


Visual Basic Copy imageCopy
'    $Revision: 1.1 $

Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli
' FvPluginXXXX attribute requires fvalgcli
Namespace SampleCode
    Public Partial Class Matrix
        ''' <summary>
        ''' 各成分のmodf の計算.
        ''' </summary>
        <FvPluginExecute> _
        Public Sub modf()
            Dim rows As Integer = 3
            Dim columns As Integer = 3
            ' 1) インスタンスの準備.
            Dim mat As New FVIL.Data.CFviMatrix(rows, columns)
            Dim mat_dsti As New FVIL.Data.CFviMatrix()
            Dim mat_dstf As New FVIL.Data.CFviMatrix()

            ' 2) 行列の要素の設定.
            mat(0, 0) = -0.1
            mat(0, 1) = 0.2
            mat(0, 2) = -0.3
            mat(1, 0) = 1.1
            mat(1, 1) = -1.2
            mat(1, 2) = 1.3
            mat(2, 0) = -2.1
            mat(2, 1) = 2.2
            mat(2, 2) = -2.3

            ' 3) 計算実行.
            mat.modf(mat_dsti, mat_dstf)

            ' 確認) 処理結果の出力.
            Console.Write("CFviMatrix.modf" & vbLf)
            For row As Integer = 0 To mat_dsti.Rows - 1
                For column As Integer = 0 To mat_dsti.Columns - 1
                    Console.Write("dsti[{0}][{1}]={2} ", row, column, mat_dsti(row, column))
                Next
                Console.Write(vbLf)
            Next
            For row As Integer = 0 To mat_dstf.Rows - 1
                For column As Integer = 0 To mat_dstf.Columns - 1
                    Console.Write("dstf[{0}][{1}]={2} ", row, column, mat_dstf(row, column))
                Next
                Console.Write(vbLf)
            Next
        End Sub
    End Class
End Namespace
【関数の出力】
CFviMatrix.modf
dsti[0][0]=0 dsti[0][1]=0 dsti[0][2]=0 
dsti[1][0]=1 dsti[1][1]=-1 dsti[1][2]=1 
dsti[2][0]=-2 dsti[2][1]=2 dsti[2][2]=-2 
dstf[0][0]=-0.1 dstf[0][1]=0.2 dstf[0][2]=-0.3 
dstf[1][0]=0.1 dstf[1][1]=-0.2 dstf[1][2]=0.3 
dstf[2][0]=-0.1 dstf[2][1]=0.2 dstf[2][2]=-0.3 
	

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also