Why do I see an error when adding character data to a table?

7 次查看(过去 30 天)
I have a table like the following:
x=[1;2;3];
y=[4;5;6];
T=table(x,y)
Then I add a column of placeholder values:
z=zeros(3,1);
T=horzcat(T,table(z))
Now want to fill in the table with data from a serial port:
for i=1:3
T{i,'z'} = query(device,'command') % or: T(i,'z') = query(device,'command')
end
I get one of the following errors:
The value being assigned from must have 1 columns.
or
The number of table variables in an assignment must match.
How can I put this data in the table?

采纳的回答

MathWorks Support Team
You are seeing these errors because the value returned from the query function is a 1xN character vector, but the data in that spot of the table is a 1x1 double. The data in a column must all have the same type and size.
Instead, make this a column of strings. You can still create placeholder values and fill them in one by one.
z=strings(3,1);
T=horzcat(T,table(z))
for i=1:3
T{i,'z'} = string(query(device,'command'))
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

标签

尚未输入任何标签。

产品


版本

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by