如何将一个表和列名为双数组没有列名

6视图(30天)
我理解使用“fitlm”两个输入应该是数组,因此“X”作为一个表需要转换为数组。
但直接使用“table2arrray”,“X”的条目都转化为' 0 '。我知道这是因为表的列名在第一行不确定。
这是“X”是什么样子:
我试着
  1. 使用“X(2:最终,:)但是它删除第一行的数字条目,而不是列名;
  2. 使用“属性。VariableNames”重置列名“{}”但它给错误了。
我需要一些建议如何修复这个问题,谢谢! !

答案(4)


Atsushi上野
Atsushi上野 2023年3月25日
移动:图像分析 2023年3月26日
我不能重现这个问题。 table2array 以上文档中是否按预期工作。
你是怎么使用这个功能吗?
T =表(分类([“Y”;“Y”;“N”;“N”;“F”]),[38,43岁,38;40;49),
(71;69;64;67;64],[176;163;131;133;119),
“VariableNames”,(“烟民”、“年龄”、“身高”“重量”])
T =5×4表
吸烟者 年龄 高度 重量 ______ ___ ______ ______38 71 176 Y 43 69 163 N 38 64 131 40 67 133 F 49 64 119
A = table2array (T (: 2:4))
一个= 5×3
38 71 176 43 69 163 38 64 131 40 67 133 49 64 119

Stephen23
Stephen23 2023年3月25日
移动:图像分析 2023年3月26日
“但直接使用“table2arrray”,“X”的条目都转化为' 0 '。”
我怀疑。更有可能的是,你是混乱的数据是多少 显示 哪些数据是存储在内存中。这些都是不一样的。注意,您的数据有更大的第一列中的值,所以默认格式 显示 一个常见的乘数数值矩阵:
M = (1.972 e7, -0.35874)%第二个元素真的是零吗?
M = 1×2
1.0 e + 7 * 1.9720 - -0.0000
(2)%当然不是,这只是如何* *显示数据,就是价值
ans = -0.3587
你也可以改变格式,数值型数据是如何变化 显示 :
格式短E
M = 1×2
1.0 e + 00 e-01 -3.5874 * 1.9720 e + 7
请注意,这一切都没有任何改变的数据存储在内存中(首先不为零)。
“我理解,这是因为表的列名在第一行不确定。”
我怀疑。注意,TABLE2ARRAY不需要 “确定” 任何列名称。

图像分析
图像分析 2023年3月26日
编辑:图像分析 2023年3月26日
简单地使用 table2array
一个= table2array (X)
注意 列标题并不是数据的一部分 这就是为什么做X(2:最终,:)行不通。只会去掉第一行的实际数据,就像你已经观察到。
注意:这个假设X是数值的所有列,像你一样。如果有些字符/字符串,那么你需要只提取数值列之前调用table2array ()。

标签

下载188bet金宝搏


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!