在MATLAB中绘制一个Cell数组

时间:2013-10-05 17:33:46

标签: matlab plot

我试图绘制一个数据单元格数组,我根据给定的θ't'求解半径'ry'。我正在使用for循环将数据存储在此单元格数组中。

for t = 0:pi/100:2*pi
    cell(n,1) = t;
    cell(n,2) = (1/4*pi)*((K1c/Sys)^2)*(1+cos(t)+(3/2)*(sin(t/2)^2));
    n=n+1; 
end;

其中K1c = 45且Sys = 40.我的问题是试图绘制这个单元格。

显然,它不像使用plot(cell)或使用plot(cell(n,1),cell(n,2))那么简单。任何建议都将不胜感激。

谢谢你们,

科迪

2 个答案:

答案 0 :(得分:2)

您没有使用单元格数组。存储数据的方式是常规矩阵。 然后是plot命令

plot(cell(:, 1), cell(:, 2))

如果您想将数据存储在单元格中,则必须将矩阵单元格重新分配给其他变量(因为单元格是matlab中的保留表达式)

a = cell;
clear cell;
b = cell(1, 2) %Create 1x2 cell
b{1} = a(:, 1);
b{2} = a(:, 2);
plot(b{1}, b{2});

答案 1 :(得分:1)

你不需要这么复杂。 Matlab旨在一次性轻松处理整个矢量和数据矩阵,而无需循环。

t = 0: pi/100: 2*pi;
y = (pi/4) * (45/40)^2 * (1 + cos(t) + 3/2 * sin(t/2).^2);
plot(t, y)

结果是

enter image description here

相关问题