MATLAB导入Excel表格绘图报错:tabular/plot错误排查问询
问题分析与解决方案
代码存在的问题
- 核心错误:
x是MATLAB的表格(tabular)对象,你用x(1:50,1)这种括号索引得到的是表格的子表格,不是数值数组,而plot函数不支持直接传入表格对象作为绘图数据,这就是报错的原因。 - 小问题:代码里的语句没加分号,运行时会把变量内容输出到命令行;另外
t = [1:50]可以简化成t = 1:50,效果完全一样。
修正后的代码
方法1:用大括号索引提取数值数组
t = 1:50; % 简化写法,加分号避免多余输出 x = BE1500HW3question13; % 假设这是导入后的表格对象,加分号 plot(t, x{1:50, 1}, 'r--', t, x{1:50, 2}, 'r'); title('Question 13'); xlabel('Length'); ylabel('Value'); legend('Experimental Value', 'Expected Value');
方法2:用点语法提取列(需知道表格列名)
如果你的表格第一列叫Experimental、第二列叫Expected,可以用更直观的点语法:
t = 1:50; x = BE1500HW3question13; plot(t, x.Experimental(1:50), 'r--', t, x.Expected(1:50), 'r'); title('Question 13'); xlabel('Length'); ylabel('Value'); legend('Experimental Value', 'Expected Value');
说明
大括号索引能直接把表格的列转换成数值数组,是通用的处理方式;点语法需要明确列的名称,可读性更强,你可以根据自己的表格结构选择。
内容的提问来源于stack exchange,提问作者A. Abu
相关产品推荐
相关产品推荐

