这是我尝试的2个函数,我想并排绘制:
numgraphs = 2;
x = 1:5;
y1 = x.^2;
y2 = x.^3;
funcs = cell(y1, y2);
for i=1:numgraphs
subplot(1,2,i);
plot(x,funcs(i));
end
但我收到了这个错误:
Error using plot
Conversion to double from cell is not possible.
我正在尝试做什么?
答案 0 :(得分:4)
使用()
括号进行单元格索引会返回一个单元格数组,而不是此单元格中包含的函数:
>> x = {1};
>> class(x(1))
ans =
cell
>> class(x{1})
ans =
double
您希望{}
建立索引:
plot(x,funcs{i});
请参阅 http://www.mathworks.de/de/help/matlab/matlab_prog/access-data-in-a-cell-array.html 有关这方面的更多信息。
答案 1 :(得分:4)
您的代码中存在两个问题:
funcs = {y1, y2};
,而不是funcs = cell(y1, y2);
plot(x,funcs{i});
,而不是plot(x,funcs(i));
。花括号用于访问单元格的内容。