MATLAB:包含列向量的结构won';不显示矢量
我已将结构数组定义为:MATLAB:包含列向量的结构won';不显示矢量,matlab,vector,Matlab,Vector,我已将结构数组定义为: oRandVecs = struct('vV',{[],[]},... 'ind_min',{[],[]},... 'mean',{[],[]},... 'vV_descending',{[],[]},... 'largest_diff',{[],[]}); oRandVecs(1.vV和oRandVecs(2.vV都将列向量分配给它们。但是,问题是输
oRandVecs = struct('vV',{[],[]},...
'ind_min',{[],[]},...
'mean',{[],[]},...
'vV_descending',{[],[]},...
'largest_diff',{[],[]});
oRandVecs(1.vV
和oRandVecs(2.vV
都将列向量分配给它们。但是,问题是输出如下所示:
oRandVecs(1)
ans=
vV:[4x1双精度]
工业:2
平均数:6.5500
vV_下降:[4x1双精度]
最大差值:2.8000
它不是实际显示向量,而是仅描述其类型
我该怎么办呢?原因是它太大了,无法以这种结构显示在屏幕上:)如果您想实际显示它,请使用
点
符号来显示您的数据
换句话说,请执行以下操作:
disp(oRandVecs(1).vV);
您也可以使用其他变量执行此操作:
disp(oRandVecs(1).vV_descending);
这可能是一条路要走
另一种方法是将结构转换为单元,然后使用:
例如:
>> 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} =
[]
这个函数不显示向量,但是当它被要求显示向量时,Matlab会显示。有没有一种方法可以把它作为一个线向量返回,并在最后加上一个T符号?我不这么认为。不过,你可以用这个,这是一个非常好的,我很高兴他想到了这一点!这真的很酷。我不断刷新看到你的编辑:顺便说一句,这是故意的吗<代码>5:4?这将给你的空矩阵无论如何@雷琳:哎呀!不,意图是5:6。纠正。谢谢
>> 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} =
[]