Matlab에서 oracle 데이터 공급자를 사용하여 oracle 데이터베이스를 쿼리하고 있습니다. 결과와 함께 matlab 매트릭스 또는 2D 배열을 채우고 싶습니다. 저는 .NET 사용자이지만 Matlab에서는 강력하지 않습니다. 우리에게는 Matlab을 사용하는 애널리스트가 있지만 .NET에 대해서는 전혀 모르기 때문에 우리는 일종의 걸림돌입니다. 우리는 Matlab 데이터베이스 툴킷을위한 2k를 배제하고 싶지 않습니다. 그래서 우리는 .NET을 사용하여 Matlab에서 데이터베이스를 쿼리합니다..NET DataTable to Matlab matrix
모든 아이디어를 쉽게 matlab에서 행렬 또는 2D 배열로 .NET에서 datatable로 변환 할 수 있습니까? 우리는 ODP.NET을 사용하고 있으므로 일반 ADO.NET GetRows()는 존재하지 않습니다. 이것이 오라클을 위해 MS의 OLE를 사용하고 있지만 PC의 Win 7 64 비트이고 MS가 해당 플랫폼에서 더 이상 오라클을 지원하지 않는다면 사용하겠다. 오라클 ODP를 사용해야하므로 우리가 사용하고있는 것입니다. 다른 것을 사용하는 것은 옵션이 아니므로 솔루션에서이를 염두에 두어야합니다.
현재 데이터베이스를 쿼리하고 각 행/열을 반복 할 수 있지만 행렬에 추가하는 데 문제가 있습니다. 즉, 행렬에 숫자 또는 문자열을 모두 저장해야하고 각 열을 반복하면서 변환 할 유형을 얻지 만 strcmp()는 다음과 같이 표시 되더라도 일치를 반환하지 않습니다.
for r = 1:rowCount
for c = 1:colCount
type = tbl.Rows.Item(r).Item(c).GetType().ToString();
val = tbl.Rows.Item(r).Item(c);
if strcmp(type,'System.Decimal') == 1
m(r, c) = tbl.Rows.Item(r).Item(c).ToDouble();
elseif strcmp(type, 'System.String' == 1) || strcmp(type, 'System.DateTime' == 1)
m(r, c) = tbl.Rows.Item(r).Item(c).ToString();
end
m(r, c) = tbl.Rows.Item(r).Item(c).ToString();
end
end
이 점을 염두에두고 어떻게 행렬 또는 2D 배열에 모든 유형의 데이터를 허용 할 수 있습니까? 당신이 원한다면 변형. 나는 m = 0 (rowCount, colCount)을하고 있었다; 그러나 이것이 숫자를 기대하는 것 같습니다. 숫자와 문자열을 모두 잡고 사용자가 수학을하기 원하는 열을 알아낼 수있게하려고합니다.