[已解决] plot的绘图仿真,为什么x轴和y轴给了变量但是图显示不出来

[复制链接]
Seani 发表于 2022-5-11 17:47:14
本帖最后由 Seani 于 2022-5-11 17:49 编辑
  1. j=1; %第一个次用户
  2. n=15;%可接入次用户的总数
  3. Pm=0; %被分配过后的次用户功率,初始值
  4. Pmax=0.1; %单位w,最大功率
  5. Ipu=10.^(-11)%单位w,主用户干扰门限阈值,-70dBm
  6. hpu=10; %单位w,主用户信道增益,40dBm
  7. rj=2; %最小传输速率
  8. hsuj=[10,10,10,50,50,100,100,500,500,500,1000,5000,5000,5000,10000];  % 单位w,次用户信道增益
  9. hpu=10; %单位w,主用户信道增益,40dBm
  10. Ns=10.^(-16); %单位w,主用户干扰功率,-130dBm
  11. Psu=min(Pmax,Ipu/abs(hpu)); %可用预算

  12. while j==1
  13.    k=1;
  14.    Pj(k)=(sym(2^(rj))*Ns)/sym(abs(hsuj(j))).^2;%第一个次用户所用功率
  15.    disp(Pj(1,1));
  16.    k=k+1;
  17.    j=j+1;
  18. end
  19. Pa=zeros(1,15);
  20. while 1<j&&j<n
  21.         k=j;
  22.         Pa=Pj(k-1)+Pa; %前j-1个次用户的功率总和     
  23.         disp(Pa(1,1));
  24.      
  25.         Pj=sym(2^(rj))*Pa+(sym(2^(rj))*Ns)/(sym(abs(hsuj(j)))^2);%第二个以后每个次用户所用功率
  26.         disp(Pj(1,1));
  27.         
  28.         Pm=Pa(1,1)+Pj(1,1);  %被分配过后的功率
  29.         disp(Pm);
  30.         
  31.         Pr=Psu-Pm; %剩余功率
  32.         disp(Pr(1,1));
  33.         b=Pa(1,1)/Psu ;%频谱效率
  34.       
  35.         if Pj>Pr
  36.             N=j-1;
  37.             fprintf('%d',N);
  38.             break;
  39.         else
  40.             j=j+1;
  41.             disp(j);%⑤      
  42.         end
  43.         
  44. end


  45. x=[];
  46. y=[];
  47. x=j-1;
  48. y= b;


  49. plot(x,y,'r-','LineWidth',1);


复制代码
x轴N=j-1是我想设置的自变量,y轴的b是我想设置的因变量。公式的程序能运行,但是图不知道该怎么编写才能运行成功。新手,在网上也没有查到

最佳答案


20141303 发表于 2022-5-11 19:54:18
仅供参考,类似这样
  1. j=1; %第一个次用户
  2. n=15;%可接入次用户的总数
  3. Pm=0; %被分配过后的次用户功率,初始值
  4. Pmax=0.1; %单位w,最大功率
  5. Ipu=10.^(-11)%单位w,主用户干扰门限阈值,-70dBm
  6. hpu=10; %单位w,主用户信道增益,40dBm
  7. rj=2; %最小传输速率
  8. hsuj=[10,10,10,50,50,100,100,500,500,500,1000,5000,5000,5000,10000];  % 单位w,次用户信道增益
  9. hpu=10; %单位w,主用户信道增益,40dBm
  10. Ns=10.^(-16); %单位w,主用户干扰功率,-130dBm
  11. Psu=min(Pmax,Ipu/abs(hpu)); %可用预算

  12. while j==1
  13.     k=1;
  14.     Pj(k)=(sym(2^(rj))*Ns)/sym(abs(hsuj(j))).^2;%第一个次用户所用功率
  15.     disp(Pj(1,1));
  16.     k=k+1;
  17.     j=j+1;
  18. end
  19. Pa=zeros(1,15);
  20. while 1<j&&j<n   
  21.     k=j;
  22.     Pa=Pj(k-1)+Pa; %前j-1个次用户的功率总和
  23.     disp(Pa(1,1));

  24.     Pj=sym(2^(rj))*Pa+(sym(2^(rj))*Ns)/(sym(abs(hsuj(j)))^2);%第二个以后每个次用户所用功率
  25.     disp(Pj(1,1));

  26.     Pm=Pa(1,1)+Pj(1,1);  %被分配过后的功率
  27.     disp(Pm);

  28.     Pr=Psu-Pm; %剩余功率
  29.     disp(Pr(1,1));
  30.     b(j)=Pa(1,1)/Psu ;%频谱效率

  31.     if Pj>Pr
  32.         N=j-1;
  33.         fprintf('%d',N);
  34.         break;
  35.     else
  36.         j=j+1;
  37.         disp(j);%⑤
  38.     end
  39. end
  40. x=1:N+1;
  41. y= b;
  42. plot(x,y,'r-','LineWidth',1);
复制代码

4 条回复


20141303 发表于 2022-5-11 18:23:29
仅供参考,因为x=j-1;y= b;都是单个数字,在图上就是一个点,看不出来

Seani 发表于 2022-5-11 19:12:08
20141303 发表于 2022-5-11 18:23
仅供参考,因为x=j-1;y= b;都是单个数字,在图上就是一个点,看不出来

那我应该怎么赋呀

20141303 发表于 2022-5-11 19:54:18
仅供参考,类似这样
  1. j=1; %第一个次用户
  2. n=15;%可接入次用户的总数
  3. Pm=0; %被分配过后的次用户功率,初始值
  4. Pmax=0.1; %单位w,最大功率
  5. Ipu=10.^(-11)%单位w,主用户干扰门限阈值,-70dBm
  6. hpu=10; %单位w,主用户信道增益,40dBm
  7. rj=2; %最小传输速率
  8. hsuj=[10,10,10,50,50,100,100,500,500,500,1000,5000,5000,5000,10000];  % 单位w,次用户信道增益
  9. hpu=10; %单位w,主用户信道增益,40dBm
  10. Ns=10.^(-16); %单位w,主用户干扰功率,-130dBm
  11. Psu=min(Pmax,Ipu/abs(hpu)); %可用预算

  12. while j==1
  13.     k=1;
  14.     Pj(k)=(sym(2^(rj))*Ns)/sym(abs(hsuj(j))).^2;%第一个次用户所用功率
  15.     disp(Pj(1,1));
  16.     k=k+1;
  17.     j=j+1;
  18. end
  19. Pa=zeros(1,15);
  20. while 1<j&&j<n   
  21.     k=j;
  22.     Pa=Pj(k-1)+Pa; %前j-1个次用户的功率总和
  23.     disp(Pa(1,1));

  24.     Pj=sym(2^(rj))*Pa+(sym(2^(rj))*Ns)/(sym(abs(hsuj(j)))^2);%第二个以后每个次用户所用功率
  25.     disp(Pj(1,1));

  26.     Pm=Pa(1,1)+Pj(1,1);  %被分配过后的功率
  27.     disp(Pm);

  28.     Pr=Psu-Pm; %剩余功率
  29.     disp(Pr(1,1));
  30.     b(j)=Pa(1,1)/Psu ;%频谱效率

  31.     if Pj>Pr
  32.         N=j-1;
  33.         fprintf('%d',N);
  34.         break;
  35.     else
  36.         j=j+1;
  37.         disp(j);%⑤
  38.     end
  39. end
  40. x=1:N+1;
  41. y= b;
  42. plot(x,y,'r-','LineWidth',1);
复制代码
回复此楼

Seani 发表于 2022-5-11 21:23:02
20141303 发表于 2022-5-11 19:54
仅供参考,类似这样

谢谢答复,了解了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表