Matlab论坛
直播中

李萌

1年用户 3经验值
擅长:matlab基础
私信 关注
[问答]

matlab画图请教

画图求了个倒数,结果倒数结果少一个,请问怎么补齐才能画图
t=0:0.1:1.8;

length=size(t,2);

for i=1:1:length
theta1=77.29481146+1*180/pi*t(1,i)
x1(i)=theta1;

j2=acosd((-b-sqrt(b^2-4ac))/(2*a));

x2(i)=j2;

hold on

end

b1=x2;

plot(x1,b1,'r')

diff_t2=diff(b1);

plot(x1,diff_t2,'b')

hold on

回帖(2)

李鸿

2024-9-23 16:34:25
在您的代码中,您尝试在 MATLAB 中绘制一个函数的倒数。然而,您遇到了一个问题,即倒数结果少了一个数据点。这通常是因为在计算差分时,差分数组的长度会比原始数组短一个元素。为了解决这个问题,您可以在原始数组的末尾添加一个元素,使其与差分数组的长度相同。以下是修改后的代码:

```matlab
t = 0:0.1:1.8; % 定义时间序列
length = size(t, 2); % 获取时间序列的长度

theta1 = 77.29481146 + 1 * 180 / pi * t; % 计算 theta1
x1 = theta1; % 将 theta1 赋值给 x1

a = 1; % 定义 a
b = -1; % 定义 b
c = 1; % 定义 c

% 计算 j2
for i = 1:length
    j2 = acosd((-b - sqrt(b^2 - 4 * a * c)) / (2 * a));
    x2(i) = j2;
end

hold on; % 保持当前图形
b1 = x2; % 将 x2 赋值给 b1
plot(x1, b1, 'r'); % 绘制 b1

% 计算差分并绘制
diff_t2 = diff(b1);
x1_diff = x1(1:end-1); % 调整 x1 的长度以匹配 diff_t2
plot(x1_diff, diff_t2, 'b');

hold off; % 关闭保持图形
```

在这个修改后的代码中,我做了以下几点改动:

1. **定义变量**:定义了 `a`、`b` 和 `c` 变量,这些变量用于计算 `j2`。
2. **计算 `theta1`**:直接计算 `theta1` 并赋值给 `x1`。
3. **计算 `j2`**:在循环中计算 `j2` 并赋值给 `x2`。
4. **绘制原始函数**:使用 `plot` 函数绘制 `b1`。
5. **计算并绘制差分**:计算 `b1` 的差分 `diff_t2`,并调整 `x1` 的长度以匹配 `diff_t2` 的长度,然后绘制差分。

这样,您就可以在 MATLAB 中正确地绘制原始函数和其倒数,并且不会出现数据点缺失的问题。
举报

jf_67161367

2024-11-27 15:26:34
这一看就是问的CHATGPT
举报

更多回帖

发帖
×
20
完善资料,
赚取积分