2

以前に R-stat で yaml ファイル入力を使用したことがありません。次の形式の 480 のマトリックスを含む xxxx.yaml ファイルがあります。各行列は、190 行 X 291 列のハイパースペクトル イメージのスライスです。R パッケージ 'yaml' を見てきましたが、R スクリプトを記述してこれらのデータを行 = 139680、列 = 180 の展開されたマトリックスに読み込む方法がわかりません。

%YAML:1.0
ImFrame0: !!opencv-matrix
   rows: 180
   cols: 291
   dt: f
   data: [ 1.53931296e+000, 5.05877912e-001, 2.08477139e+000, 1.61429548e+000, 1.71412516e+000, 1.29397893e+000,.....]
   ...   
   ...
   ...

ImFrame480: !!opencv-matrix
   rows: 180
   cols: 291
   dt: f
   data: [ 1.32225396e+000, 4.05347912e-001, 3.11177139e+000, 1.87459548e+000, 1.34523456e+000, .....]
4

1 に答える 1

1

キーが 180x291 のすべてのデータの maxtrix の 1-D ベクトルであり、行ごとに入力されると仮定すると、data以下のコードが最初になるはずです... 480 個の 180x291 のマトリックスからどのように移動するかは完全にはわかりません単一の 139680x180 マトリックスに...しかし、既知の形状のマトリックスのリストを取得したら、残りは従う必要があります。

ヤムル

ImFrame0: !!opencv-matrix
   rows: 3
   cols: 2
   dt: f
   data: [ 1.53931296e+000, 5.05877912e-001, 2.08477139e+000, 1.61429548e+000, 1.71412516e+000, 1.29397893e+000]
ImFrame480: !!opencv-matrix
   rows: 3
   cols: 2
   dt: f
   data: [ 1.32225396e+000, 4.05347912e-001, 3.11177139e+000, 1.87459548e+000, 1.34523456e+000, 4.05347912e-001]

Rコード

library(yaml)

ll <- yaml.load_file('path/to/your.yaml')

from_yaml <- function(l) {
    matrix(l$data, nrow=l$rows, ncol=l$rows, byrow=TRUE)
}

list_of_mats <- lapply(ll, from_yaml)
于 2013-09-05T15:42:01.060 に答える