Vchop.java
/*
* $Id: Vchop.java,v 1.7 2008/02/25 08:35:52 koga Exp $
*
* Copyright (C) 2004 Koga Laboratory. All rights reserved.
*/
package org.mklab.tool.matrix;
import java.util.ArrayList;
import java.util.List;
import org.mklab.nfc.matrix.DoubleMatrix;
import org.mklab.nfc.matrix.IntMatrix;
/**
* 長いベクトルを複数のベクトルに分割するクラスです。
*
* <p>Chop a vector to some vectors
*
* @author koga
* @version $Revision: 1.7 $
* @see org.mklab.tool.matrix.Vconnect
*/
public class Vchop {
/**
* 与えられた指数に応じて、長い状態ベクトルをいくつかの 状態に分割します。
*
* <p> Chop a long state vector to some states vectors according to the given list of index.
*
* @param X ベクトル
* @param statesIndex 各ベクトルの大きさのリスト
* @return 分割したベクトルのリスト (choped vectors)
*/
public static List<DoubleMatrix> vchop(DoubleMatrix X, List<IntMatrix> statesIndex) {
int n = statesIndex.size();
List<DoubleMatrix> states = new ArrayList<>(n);
for (int i = 1; i <= n; i++) {
states.set(i, X.getSubVector(statesIndex.get(i + 1)));
}
return states;
}
}