我已经定义了一个结构数组:
oRandVecs = struct('vV',{[],[]},...
'ind_min',{[],[]},...
'mean',{[],[]},...
'vV_descending',{[],[]},...
'largest_diff',{[],[]});
oRandVecs(1).vV
和oRandVecs(2).vv
都会获得分配给它们的列向量。但问题是输出如下:
>> oRandVecs(1)
ans =
vV: [4x1 double]
ind_min: 2
mean: 6.5500
vV_descending: [4x1 double]
largest_diff: 2.8000
它不是实际显示矢量,而是仅描述其类型。
我该怎么办?
答案 0 :(得分:1)
原因是因为它太大而无法在屏幕上显示该结构:)如果您想要实际显示它,请使用dot
表示法来显示您的数据。
换句话说,这样做:
disp(oRandVecs(1).vV);
您也可以使用其他变量:
disp(oRandVecs(1).vV_descending);
答案 1 :(得分:0)
answer by rayryeng可能是要走的路。
另一种方法是从结构转换为单元格,然后使用celldisp
:
celldisp(struct2cell(oRandVecs(1)))
示例:
>> oRandVecs = struct('vV',{[],[]},...
'ind_min',{[],[]},...
'mean',{[],[]},...
'vV_descending',{[],[]},...
'largest_diff',{[],[]}); %// define empty struct
>> oRandVecs(1).vV = (1:4).'; %'// fill some fields: column vector, ...
>> oRandVecs(1).mean = 5:7; %// ... row vector, ...
>> oRandVecs(1).vV_descending = randn(2,3); %// ... matrix
>> celldisp(struct2cell(oRandVecs(1)))
ans{1} =
1
2
3
4
ans{2} =
[]
ans{3} =
5 6 7
ans{4} =
0.016805198757746 0.236095190511728 0.735153386198679
2.162769508502985 -0.158789830267017 0.661856091557715
ans{5} =
[]