[英]How to explore the structure and dimensions of an object in Octave?
Im Matlab, properties
函數聽起來可能等效於R中的命令,該命令使您熟悉工作環境中的特定對象,並提供有關其結構(數據,框架,矩陣,列表,向量)和變量類型(字符)的信息,數字)(例如,使用R命令str()
),尺寸(可能使用調用dim()
)和變量names()
)。
但是,此功能在八度中不起作用:
>> properties(data)
warning: the 'properties' function is not yet implemented in Octave
我按照上面鏈接的評論中的建議安裝了軟件包dataframe
:
pkg install -forge dataframe
並加載pkg load dataframe
pkg install -forge dataframe
但是我找不到一種方法來獲取工作區中datset data.mat
的結構和尺寸的摘要。
我相信它是一個由4 x 372,550數值矩陣組成的結構; 兩個4 x 46,568數值矩陣和256 x 1字符矩陣。 為了獲得此信息,我必須滾動瀏覽數據打印輸出的許多頁面。
此信息在Octave IDE上不可用,我在這里獲得:
Name Class Dimensions
data struc 1 x 1
與對象data
的復雜性相去甚遠。
在Octave的工作空間中獲取有關對象的某些信息的明智方法是什么?
遵循提供的第一個答案,這是我對whos
:
>> whos
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
data 1x1 7452040 struct
Total is 1 element using 7452040 bytes
這並不是關於data
真正包含什么的特別有用的信息。 實際上,我只是找到了一種提取data
內部名稱的data
:
>> fieldnames(data)
ans =
{
[1,1] = testData
[2,1] = trainData
[3,1] = validData
[4,1] = vocab
}
現在如果我打電話
>> size(data)
ans =
1 1
輸出不是很有用。 另一方面,知道我可以做的data
矩陣的名稱
>> size(data.trainData)
ans =
4 372550
這確實是有益的。
如果鍵入變量的名稱,將看到有關它的信息。 在您的情況下,它是一個結構,因此它將告訴您字段名稱。 相關功能包括: size
, ndims
, class
, fieldnames
等。
size(var)
class(var)
等等
您引用.mat
。 也許您有一個MAT文件,可以使用load filename
。 加載后,您可以檢查和使用文件中的變量。
whos
在內存中的變量上打印簡單信息,這對於查看存在哪些變量最有用。
跟進您編輯過的問題。 這在八度中有效:
for s=fieldnames(data)'
s=s{1};
tmp=data.(s);
disp([s,' - ',class(tmp),' - ',mat2str(size(tmp))])
end
它輸出該結構的每個成員的基本信息。 它確實假定data
是1x1結構數組。 請注意,結構可以是數組:
data(2).testData = [];
使您的data
結構為2x1數組。 這就是為什么size(data)
很重要。 class
也很重要(在whos
的輸出中顯示。變量可以是double
類型(普通數組),也可以是其他數值類型, logical
, struct
, cell
(數組數組)或可以編寫自己的自定義類。
我強烈建議您在MATLAB / Octave上閱讀介紹性文本,因為它的工作原理與R截然不同。它不僅是一種不同的語言,而且是一個完全不同的世界。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.