मेरा लक्ष्य निम्नलिखित ग्राफ में सक्षम हो रहा है:
x(n)= delta(n)+delta(n-1)+delta(n-2)+….+delta(n-10)+delta(n-11)
मैंने यह कोड लिखा है:
n = -15:15
e(m) = dirc(n(m));
k = 1
for m = 1 : length(n)
while k < 12
e_1(m) = dirc(n(m)-k);
k = k + 1
end
e(m) = e(m) + e_1(m)
end
subplot(4,4,5);
stem(n,e,"m","markersize",3,"linewidth",1)
xlabel("n")
ylabel("delta[n]")
title ("(e)")
और मैंने लिखा है कि समारोह इस प्रकार है:
function output = dirc(input)
output = 0;
if input == 0
output = 1;
end
end
त्रुटि है
सूचकांक मैट्रिक्स आयामों से अधिक है
जैसा कि आप देख सकते हैं, यह एक समापन समारोह है, मैं "अंततः इस तरह से कुछ को ग्राफ करने में सक्षम होना चाहता हूं:
x(n)= delta(n)+delta(n-1)+delta(n-2)+….
उत्तर:
जवाब के लिए 2 № 1आप हमें नहीं दिखा रहे हैं m
दूसरी पंक्ति में है, जो आपकी समस्याओं का एक संभावित स्रोत है। इसके अलावा, आपको "वेक्टर को पूर्व-आवंटित करना होगा" e
यदि आप एक लूप में इसके मूल्यों को बढ़ाना चाहते हैं, तो यह आपको आउट-ऑफ-बाउंड त्रुटियां भी दे सकता है।
अपने शेष कोड के लिए, आप प्रतिस्थापित कर सकते हैं dirc(input)
बस के साथ input==0
परिणामी तार्किक मूल्य संख्यात्मक के साथ संगत होंगे 0
तथा 1
(मामले में input
स्केलर है, जो आपके लिए मामला लगता है)।
तथ्य की बात के रूप में, आप जो प्राप्त करने की कोशिश कर रहे हैं वह फ़ंक्शन है
kmax = 11;
xfun = @(n) ismember(n,0:kmax); %// anonymous function
x(n) = xfun(n); %// evaluate at any specific value n
या यदि आप गणना करना चाहते हैं x(n)
के कई मूल्यों के लिए n
तुरंत:
kmax = 11;
xfun = @(n) sum(bsxfun(@eq,n(:),0:kmax),2);%// anonymous function
xvec = xfun(-15:15); %// evaluate at every n simultaneously