完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
画图求了个倒数,结果倒数结果少一个,请问怎么补齐才能画图 length=size(t,2); for i=1:1:length 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 |
|
相关推荐
1个回答
|
|
在您的代码中,您尝试在 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 中正确地绘制原始函数和其倒数,并且不会出现数据点缺失的问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1509 浏览 1 评论
200圆!求助大佬给一份VSG并网和离网模式的simulink仿真
1799 浏览 0 评论
MATLAB(3)--矩阵的引用(sub2ind、ind2sub、reshape函数使用)
2613 浏览 0 评论
2951 浏览 0 评论
4094 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 16:59 , Processed in 0.409950 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号