我有数据文件包括两种类型的数字,实数(分数和整数)和复数。但当我使用‘uable’时,所有数据都会变得复杂(当然,0i是虚数部分)。看看figure,有什么建议可以去掉那些自动出现的虚构部件吗?
u0sqgete1#
有一条路可以绕过去。1.-假设您的数据是
c2 = 1.0e+02 *[ 0.997200000000000 + 0.000000000000000i -2.980950000000000 - 2.615070000000000i -5.201680000000000 - 5.166180000000001i -1.654660000000000 + 8.841020000000000i -7.100910000000000 - 0.214950000000000i 0.264990000000000 + 0.000000000000000i -7.533630000000000 - 1.921760000000000i -9.006920000000001 + 0.000000000000000i 7.060630000000000 + 0.000000000000000i -1.963840000000000 + 5.605040000000000i -6.321850000000000 + 0.000000000000000i 8.054330000000000 + 1.504170000000000i 2.441100000000000 + 8.001080000000000i -8.480670000000000 - 2.205220000000000i -5.200950000000001 - 7.360539999999999i 8.895750000000000 - 8.804410000000001i]
然后
hf1 = uifigure; uit = uitable(hf1,'Data',c2);
当您尝试强制转换或直接写入空虚部分元素时,只要单个元素具有非空虚部分,用uable显示的表就会在表中的所有元素上保留0i。以下方法不起作用
0i
uit.Data(1,1) uit.Data(1,1)=real(uit.Data(1,1)) uit.Data(1,1)=49 if imag(c2(:))==0 c(:)=real(c(:)); end
2.-现在让我们将馈送到uitable的数据转换为字符
uitable
c10={}; for k=1:1:numel(c2) c10=[c10 strip(num2str(c2(k)))]; end c10=reshape(c10,size(c2)); hf2=uifigure; uit2=uitable(hf2,'Data',c10)
现在,使用uitable生成的结果表符合问题中的要求,即虚部为空的表元素不会显示0i。补充评论:我使用以下代码生成了随机的4x4
simulating data a=1e-3*randi([-1e6 1e6],1,16); b=1e-3*randi([-1e6 1e6],1,16); b(unique(randi([1 16],1,randi([4 12],1,1))))=0; c=a+b*1j; c2=reshape(c,[4 4])
1条答案
按热度按时间u0sqgete1#
有一条路可以绕过去。
1.-假设您的数据是
然后
当您尝试强制转换或直接写入空虚部分元素时,只要单个元素具有非空虚部分,用uable显示的表就会在表中的所有元素上保留
0i
。以下方法不起作用2.-现在让我们将馈送到
uitable
的数据转换为字符现在,使用
uitable
生成的结果表符合问题中的要求,即虚部为空的表元素不会显示0i
。补充评论:我使用以下代码生成了随机的4x4