我想在Matlab中创建一个简单的表,所以我使用了这段代码:
T := table(a = 13, c = 42)
但是它给出了一个错误:
XRD 类型的输入参数的未定义函数“T” “焦炭”。 xrd错误(第1行) T:=表(a = 13,c = 42)
我该如何解决这个问题?
答案 0 :(得分:3)
:=
在Matlab中不是操作符,这会解释您的代码行。 Matlab尝试访问一个名为T的函数,其余部分作为字符串参数。
尝试
a = 13
b = 42
t = table(a, b)
输出:
t =
a b
__ __
13 42
对于rownames,您可以使用:
>>t = table(a, b, 'RowNames', {'c'})
t =
a b
__ __
c 13 42
请注意,RowNames参数是一个单元格,每行包含一个字符串
答案 1 :(得分:1)
在matlab中,table
具有特定含义(请参阅documentation),这可能与您在其他语言中的习惯不同。
对于您要做的事情,也许您应该考虑定义一个结构:
T = struct('a', 13, 'c', 42)
查看struct
文档以获取更多详细信息:
doc struct
答案 2 :(得分:0)
由于MATLAB用预定义的列名初始化表的方式对我来说似乎特别晦涩,因此我在此处进行记录。
请注意,我曾经使用cell2table
函数来初始化表。
从那时起,jobTable.FOO = ...;
将使您能够创建更多列FOO
。
jobTable = cell2table([{'running'}, {'queued'}, {'finished'}]', 'VariableNames', {'state'});
jobTable.rank = [0, 1, -1]';
jobTable.workflowId = [0, 29039, 28000]';
您可以将表格转换为结构,例如通过使用table2struct(jobTable)
对与Java通讯更有用。