上三角成分の抽出

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

Syntax

C#
public virtual CFviMatrix triu(
	int k
)
Visual Basic
Public Overridable Function triu ( 
	k As Integer
) As CFviMatrix

Parameters

k
Type: System..::..Int32
対角位置

Return Value

Type: CFviMatrix
MxN 行列 の上三角部を取り出し、行列オブジェクトに格納して返します。
現在の行列の内容は更新されません。

Remarks

k は対角位置を指定するパラメータで、k=0 は主対角を示します。 k>0のとき主対角よりも上側の対角を、k<0 のとき主対角成分より下側の対角を示します。 min(M,N)≦|k| と指定した場合、エラーとなります。 対角成分を除く下三角部は 0 が格納されます。

生成に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの 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_triu

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>
        /// 上三角成分の抽出.
        /// </summary> 
        [FvPluginExecute]
        public void triu()
        {
            int rows = 4;
            int columns = 4;
            // 1) インスタンスの準備.
            FVIL.Data.CFviMatrix mat = new FVIL.Data.CFviMatrix(rows, columns);

            // 2) 行列の要素の設定.
            mat[0, 0] = 1.0; mat[0, 1] = 3.0; mat[0, 2] = 3.0; mat[0, 3] = 9.0;
            mat[1, 0] = 4.0; mat[1, 1] = -2.0; mat[1, 2] = 1.0; mat[1, 3] = 3.0;
            mat[2, 0] = 6.1; mat[2, 1] = -4.0; mat[2, 2] = 8.0; mat[2, 3] = 5.0;
            mat[3, 0] = -2.0; mat[3, 1] = 3.0; mat[3, 2] = -7.0; mat[3, 3] = 3.0;

            // 3) 計算実行.
            int k = 1;
            FVIL.Data.CFviMatrix result = mat.triu( k );

            // 確認) 処理結果の出力.
            Console.Write("CFviMatrix.triu\n");
            for (int row = 0; row < result.Rows; row++)
            {
                for (int column = 0; column < result.Columns; column++)
                {
                    Console.Write("[{0}][{1}]={2} ", row, column, result[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>
        ''' 上三角成分の抽出.
        ''' </summary> 
        <FvPluginExecute> _
        Public Sub triu()
            Dim rows As Integer = 4
            Dim columns As Integer = 4
            ' 1) インスタンスの準備.
            Dim mat As New FVIL.Data.CFviMatrix(rows, columns)

            ' 2) 行列の要素の設定.
            mat(0, 0) = 1.0
            mat(0, 1) = 3.0
            mat(0, 2) = 3.0
            mat(0, 3) = 9.0
            mat(1, 0) = 4.0
            mat(1, 1) = -2.0
            mat(1, 2) = 1.0
            mat(1, 3) = 3.0
            mat(2, 0) = 6.1
            mat(2, 1) = -4.0
            mat(2, 2) = 8.0
            mat(2, 3) = 5.0
            mat(3, 0) = -2.0
            mat(3, 1) = 3.0
            mat(3, 2) = -7.0
            mat(3, 3) = 3.0

            ' 3) 計算実行.
            Dim k As Integer = 1
            Dim result As FVIL.Data.CFviMatrix = mat.triu(k)

            ' 確認) 処理結果の出力.
            Console.Write("CFviMatrix.triu" & vbLf)
            For row As Integer = 0 To result.Rows - 1
                For column As Integer = 0 To result.Columns - 1
                    Console.Write("[{0}][{1}]={2} ", row, column, result(row, column))
                Next
                Console.Write(vbLf)
            Next
        End Sub
    End Class
End Namespace
【関数の出力】
CFviMatrix.triu
[0][0]=0 [0][1]=3 [0][2]=3 [0][3]=9 
[1][0]=0 [1][1]=0 [1][2]=1 [1][3]=3 
[2][0]=0 [2][1]=0 [2][2]=0 [2][3]=5 
[3][0]=0 [3][1]=0 [3][2]=0 [3][3]=0 
	

Exceptions

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

See Also