A. matlab中disp的用法
matlab編寫的fft源程序函數文件
雖然在matlab中用fft函數就可以實現fft變換,但是我們仍然可以自己編寫一個程序,實現快速傅立葉變換,反變換,或者倒位序排列等。
以下為matlab編寫的fft源程序的函數文件。
function Y=myfft(x)
n=size(x);
for l=0:12,
if 2^l>=n
N=2^l;
L=l;
break
end
end
for t=n(2)+1:N, %不足2^L的數在末尾補0
x(t)=0;
end
x %x為補0後的序列
nv2=N/2; %倒位序
nm1=N-1;
I=0;
J=0;
while I<nm1
if I<J
t =x(J+1);
x(J+1)=x(I+1);
x(I+1)=t;
end
K=nv2;
while K<=J
J=J-K;
K=K/2;
end
J=J+K;
I=I+1;
end
X=x %至此x為實現了輸入序列的倒位序排列
%以下是基-2按時間抽選fft,輸入倒位序,輸出自然順序。
%(按書上P187(《數字信號處理》,程佩青)流程圖所編.)
M=1;
while M<=L
LE=2^M;
LE1=LE/2;
U=1;
W=exp(-j*pi/LE1);
J=0;
while J<=LE1-1
I=J;
while I<=N-1
IP=I+LE1;
T=x(IP+1)*U;
x(IP+1)=x(I+1)-T;
x(I+1)=x(I+1)+T;
I=I+LE;
end
U=U*W;
J=J+1;
end
M=M+1;
end
Y=x;
以下為反變換程序,用正變換函數實現。
function y=myIFFT(X); %用fft實現ifft變換
N=size(X);
X=conj(X);
x=myfft(X);
x=conj(x);
y=x/N(2)
B. 編程中自定義函數disp_str()是什麼意思
函數是需要先申明再使用的,錯誤提示表明編譯器無法找到你的函數原型,所以不知道你這個函數調用是否正確,你可以在
void disp_welcome()前面加一個函數原型
disp_str(int a,int b,int c,char * s);這只是舉個例子,具體函數原型要看你自己怎麼定義的了
C. matlab中disp(fval) disp(exitflag) 是什麼意思
如果前面完全沒有出現過 fval和exitflag
那樣肯定會報錯
仔細看看你原來的代碼有沒有這兩變數的出現
這兩個變數應該是 一些優化函數輸出的結果,而且一般是第二第三輸出結果
注意你前面的代碼中有沒有出現,類似
[x,fval,exitflag]=.....
之類的語句
D. 編程disp([i,a])什麼意思
disp([i,a])是一個二維數組。
E. matlab符號方程組 disp是什麼意思,為什麼參考書中的例題沒有,實際編程時沒他行不行
DISP Display array.
DISP(X) displays the array, without printing the array name. In
all other ways it's the same as leaving the semicolon off an
expression except that empty arrays don't display.
If X is a string, the text is displayed.
以上是Matlab幫助原文。
DISP是一個顯示數組的函數,如果你不想顯示,可以不用。
F. 匯編disp子程序的功能是什麼,本子程序是用來傳遞什麼參數的
你要把程序發出來才知道是功能是什麼
常見的的參數傳遞有4種
1.寄存器法
寄存器法就是將入口參數和出口參數存放在約定的寄存器中。
優點:數據傳遞書讀快、編程較方便、節省內存單元。
缺點:當傳遞參數過多時候,由於寄存器個數有限,及寄存器的頻繁使用,將導致寄存器不足。
適用:參數較少的子程序
2。約定單元法:
約定單元法顧名思義是吧入口參數和出口參數都放在事先約定好的單元中
優點:不佔用寄存器、參數個數任意、每個子程序要處理的數據和送出的結構都有獨立的存儲單元
缺點:但用一定數量的存儲單元,增加編程中對變數定義的難度
3.堆棧法
堆棧法是利用堆棧來傳遞參數的。
優點:參數不佔用寄存器,和存儲單元。參數存放在公共堆棧區,處理完後客恢復。參數個數一般不限
缺點:由於參數和子程序混雜在一起,存取參數時候必須小心計算它在堆棧中的位置。要注意斷點的保存和恢復。
4.地址表法
這種方法是把參數組成的一張參數表放在某個存儲區中,然後只要主程序和子程序約定好這個存儲區的首地址和存放的內容,在主程序中將參數傳遞給地址表,在子程序中根據地址表給定的參數就可以完成操作。
G. 求助matlab中disp的用法
你的程序錯誤很多,
第一個:R沒有定義
第二個:c的計算在使用後面
第三個:disp使用錯誤
disp(['Vmax' num2str(k) '=' num2str(vmax)])
MH=[51000,71400,128000,370000];
MT=[16,24,48,116];
h=600;
R=1;
for k=1:4
H=MH(k);
a=(h+H+2.*R)./2;
c=(H-h)./2;
b=sqrt(a.^2-c.^2);
s1=pi.*a.*b./MT(k);
vmax=2.*s1./(R+h);
disp(['Vmax' num2str(k) '=' num2str(vmax)])
end
H. 單片機c語言中編程disp()語句是什麼意思
disp() , 通常是做為顯示用的函式, 用來輸出(呈現)一個結果或是輸出過程的一段程序碼.
在C語言中, 函式用來包裝一小段程序, 藉由包裝, 將程序結構化, 利於重復叫用及理解.
單片機中, 通常使用disp()輸出一個結果到顯示屏或是數碼管. 也有可能是 顯示過程的控製程序, 例如多位數碼管的掃描式顯示之控制過程.
I. C語言 display 什麼意思
display()是一種函數,功能是顯示輸出函數。
例:
#include<iostream.h>
template<classk1,classk2>
voiddisplay(k1x,k2y);
voidmain()
{
charc='h',str[]="ok2002";
intn=100;
floatx=5.5;
doublez=1.23456;
//兩個參數類型相同
display(c,char(c+2));//hj
display(x,2*x);//5.511
display(n,2*n);//100200
display(str,str);//ok2002ok2002
display(z,2*z);//1.234562.46912
//兩個參數類型不同
display(c,str);//hok2002
display(str,2*x);//ok200211
display(str,c);//ok2002h
display(n,str);//100ok2002
display(z,n);//1.23456100
}
//定義名為display的函數模板
template<classk1,classk2>
voiddisplay(k1x,k2y)
{
cout<<x<<" "<<y<<endl;
}
(9)編程裡面disp擴展閱讀
C語言$diplay和$write任務
$display任務相當於C語言里的printf,用於輸出信息,他的基本格式$display(p0,p1,p2);意思就是把p1、p2以p1的格式輸出。
$monitor和$diplay的區別在於$monitor是連續監視數據的變化,因而往往只要在測試模塊的initial塊中調用一次就可以監控被測模塊中所有感興趣的信號不需要,也不能在always塊中調用$monitor。
在display中,輸出列表中的數據的現實寬度總是按照自動輸出格式進行調整的。因此,我們通常在%和表示進制的符號之間加一個0來確保總是用最少的位數來表示表達式的當前值。
例如
begin
r1=10;
$display("size=%d=%h",r1,r1);
$display("size=%0d=%0h",r1,r1);
輸出結果分別為10,00a和10,a
所以在以後寫程序時,為了養成良好習慣,應該注意加上0來保證代碼的可讀性。
如果輸出的列表中含有不定值或者高阻態時,要遵循下列情況。