悠秀儿 2024-03-12 22:09 采纳率: 50%
浏览 126
已结题

用MATLAB绘制的图像中的数值与工作区中的数值不符

用MATLAB绘制的图像中的数值与工作区中的数值不符
例如横坐标取200,工作区中的数值为0.7409,图像显示为0.0489982
图像如下:

img

img

代码如下:

close all;
clear;
clc;

tx = 0:0.1:350;

p10 = exp(-7e-5*tx);%ADC
p20 = exp(-4.5e-6*tx);%软驱
p30 = exp(-3.6e-6*tx);%预处理
p40 = exp(-3.1e-6*tx);%数位打包
p50 = exp(-9.2e-5*tx);%接口
p60 = exp(-9.6e-6*tx);%波束合成
p70 = exp(-5.3e-5*tx);%交换机
p80 = exp(-5.3e-6*tx);%自相关
p90 = exp(-8.2e-5*tx);%积分
p100 = exp(-6.5e-5*tx);%数据存储
p110 = exp(-6.2e-5*tx);%时钟触发单元
p122 = exp(-7.1e-5*tx);%LCP
p123 = exp(-7.1e-5*tx);%rcp
p124 = exp(-5.4e-5*tx);%S N S
p125 = exp(-4.2e-5*tx);%LNA
p126 = exp(-7.8e-6*tx);%Adjustable A
p127 = exp(-8.3e-6*tx);%BPF
p128 = exp(-8.5e-6*tx);%AMP
p129 = exp(-6.8e-6*tx);%FIX A
p130 = exp(-6.5e-6*tx);%E/O
p131 = exp(-7.6e-6*tx);%O/E
p132 = exp(-4.7e-5*tx);%MIX
p133 = exp(-5.9e-6*tx);%POWER D


G5 = zeros(size(tx));
G34 = zeros(size(tx));
B11 = zeros(size(tx));
B21 = zeros(size(tx));
B0 = zeros(size(tx));
G80 = zeros(size(tx));
a0 = zeros(size(tx));
b0 = zeros(size(tx));
c0 = zeros(size(tx));
d0 = zeros(size(tx));
G144 = zeros(size(tx));
P0 = zeros(size(tx));
RR = zeros(size(tx));
a00 = zeros(size(tx));
b00 = zeros(size(tx));
d00 = zeros(size(tx));




%G5部分
G5 = (1-(1-p122).*(1-p124)).* p125.*p126;
%G34部分
G34 = 1*(1-(1-p127).^4).*p128.*p129.*p128.*p129.*p130.*p131.*p128;
%G80部分
B11 = 1*p127.*p128.*p126.*p128;
B21 = 1*p127.*p126.* p132.* p128.*p133.*p124 .* p127.*p128.* p132.*p128.*p133.*p124 .*p128.*p127;
B0 = 1- (1-B11).*(1-B21);
G80 = B0.*B0.*p110;

%G144
%时钟触发单元-电路板A1-25
a00 = 1*p10.*p20.*p30.*p20.*p40.*p50;
%并1总;
a0 = a00.^25;
%时钟触发单元-电路板B1-4
b00 = 1*p10.*p20.*p30.*p20.*p60.*p20.*p40.*p50;
%总电路板B
b0 = b00.^4;
%电路板B-电路板C
c0 = 1.*p50.*p20.*p60.*p20.*p40.*p50;
%并3-交换机
G144 = a0.*c0.*b0.*p70;

%R
%交换机-电路板D
d00 = 1*p50.*p20.*p80.*p20.*p90.*p20.*p40.*p50;
%并4总
d0 = d00.^32;

%交换机-数据存储
P0 = p100.*p70;

%正常、电路板A、B、C、D成功概率分别为1
RR = P0.*G144.*d0.*G80.*G34.*G34.*G5.*G5;


set(gcf,'color','white'); % 设置背景是白色的 原先是灰色的 论文里面不好看
plot(tx, RR, 'b-',  'LineWidth', 1.5);
grid on
ylim([0 1]);
set(gca, 'FontSize', 14, 'Fontname', 'Times New Roman')
xlabel("t", 'fontsize', 14, 'FontName', 'Times New Roman', 'fontweight', 'bold');% 横坐标的文字是 加粗的
ylabel("R(t)", 'fontsize', 14, 'FontName', 'Times New Roman', 'fontweight', 'bold', 'Fontangle', 'italic');

  • 写回答

8条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-12 22:14
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的MATLAB代码和描述的问题,图像中横坐标为200时显示的数值与工作区变量RR在该位置处的数值不一致。从图1中的信息来看,图像在X=200.1的位置上对应的Y值是0.0489982,而在您的工作区数据中,RR在接近200处(假设取整数点)的数值大约是0.7409。

    这种差异可能是由于以下原因:

    1. 绘图精度问题:MATLAB在绘制图形时,对于数据点的选择可能并不精确对应于数组的索引值,特别是在非整数点时。您可以尝试使用plot(tx, RR, 'b-', 'LineWidth', 1.5, 'MarkerSize', 5); hold on; plot(200, RR(200), 'ro');添加一个红色圆点标记来查看确切的数据点位置。

    2. 数据截断或舍入误差:在显示或者打印输出时,MATLAB可能会对较长数字进行省略显示,实际存储的数值还是正确的。确保查看完整未截断的数值,可以通过format long命令查看更精确的数值。

    3. 代码逻辑错误:检查代码中是否有可能影响RR数组计算的部分,确保tx数组与RR数组的对应关系正确无误。

    为了进一步验证,请确认横坐标为200时RR的实际数值:

    disp(RR(round(200/0.1)));
    

    如果结果显示的是0.7409(或其他与0.0489982不符的数值),那么就是上述第一种情况,即绘图时选取的数据点与预期的数组索引有细微差别。若要解决这个问题,可以考虑调整横坐标的步长使其能准确匹配到数组索引,或者在特定点处强制标注实际值。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月13日
  • 创建了问题 3月12日