簡體   English   中英

其中一個圖表沒有在MATLAB中繪圖

[英]One of the graphs is not plotting in MATLAB

我有三張圖可供繪圖。 它們都可以單獨繪制,但是當我想要在單獨的窗口中繪制圖形時,不會繪制第二個圖形。

第一張圖很好:

function wave = carrier( t )
    %The carrier signal is a sine wave
    wave=sin(10*pi*t);
    %Plots the carrier wave
    figure(1);
    plot(wave);
    title('Figure 1: ASK Carrier signal')
    xlabel('Time')
    ylabel('Amplitude')
end

這是第二張圖,沒有繪制:

% Generates the data signal then plots it. The data signal is: 10110100
function [ D ] = data( t )
    %Genereates the data signal
    D=[ones(1,100) zeros(1,100) ones(1,100) ones(1,100) zeros(1,100) ones(1,100) zeros(1,100) zeros(1,100)];
    %Plots the data signal
    figure(2);
    plot(t,D);
    title('Figure 2: Data signal')
    xlabel('Time')
    ylabel('Amplitude')
end

最后,這是繪制的第三個圖:

function [ modulated ] = ASK( t )
%Using '.*'to multiply the arrays element by element
    modulated=data(t).*carrier(t);
    figure(3);
    %plots both the ASK and the data signal on the same graph
    plot(t,modulated,t,data(t), 'LineWidth',2);
    title('Figure 3: ASK modulated wave')
    xlabel('Time')
    ylabel('Amplitude')
    legend('ASK (t)','data(t)')
%     for i=1:1:10;
%       %adding noise to simulate real life transmission of data
%         modulated(round(rand(1)*800))=rand(1);
%     end

end

如何在單獨的窗口中將所有三個圖形繪制得很好? 這就是它的樣子: http//prntscr.com/2i75xg BTW,已經嘗試過子圖,同樣的事情。

功能data使圖2成為活動數字。 您可以在函數ASK中的plot命令中調用data ,這會使圖2處於活動狀態。 這就是圖3中沒有顯示任何內容的原因。

ASK你可能想要這樣的東西:

d = data(t);
figure(3)
plot(t, modulated, t, d, 'LineWidth'2);

我能夠使圖表適用於所有3個函數,但前提是輸入向量t的長度恰好為800.這是因為在函數數據中,硬編碼D的長度為800:

D=[ones(1,100) zeros(1,100) ones(1,100) ones(1,100) zeros(1,100) ones(1,100) zeros(1,100) zeros(1,100)];

如果您傳遞任何其他內容,您將收到“矢量長度必須匹配”的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM