2

我正在尝试绘制一个数据元胞数组,在其中我根据给定的 theta '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)) 那样简单。任何建议将不胜感激。

多谢你们,

科迪

4

2 回答 2

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});
于 2013-10-05T18:45:19.317 回答
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)

这导致

在此处输入图像描述

于 2013-10-05T21:09:59.073 回答