我正在使用MATLAB來訪問postgresql數據庫。我遇到的問題試圖訪問boolean[]
類型的列:將java.lang.Boolean [] []轉換爲可用的MATLAB數組?
x;#% x is a <1x1 org.postgresql.jdbc4.Jdbc4Array>
當訪問real[]
值,我可以採取以下方法:
double(x.getArray());
不幸的是,有boolean[]
這導致以下錯誤消息:
Undefined function 'toDouble' for input arguments of type 'logical'.
所以我想轉換爲logical
第一可能工作:
logical(x.getArray());
除此之外也不起作用。可能出現
Error using logical
Conversion to logical from java.lang.Boolean[][] is not possible.
的問題,因爲一個java.lang.Boolean不從java.lang.Number中獲得,但是the MATLAB docs on conversion of java return types使它看起來像這不應該是一個問題。
我在這裏做錯了什麼?我如何從fetch
結果得到在MATLAB中可用的邏輯數組?如果一切都失敗了,我可以使用數字類型的數組來重建表格,而不是boolean[]
,但看起來這應該是可能的,而沒有那麼遠。
謝謝你把我到'booleanValue' - 一旦我索引一路到陣列(所以我不會僅僅獲得另陣列退出),該方法變爲可用。而不是循環,'arrayfun(@(x)x.booleanValue,array(:))'(根據需要重新設計)很好地完成了這個技巧。 – tmpearce