[問題] function不能用x=linspace執行已回收
小弟寫了一個Voigt函數 Gaussian(x,sigma)和Lorentzian(x,r)的convolution
sigma和r為了簡化,就當Voigt是X的函數就好。X在區間-10~10之間
以下是程式碼
% function V=Voigt(X)
x=linspace(-10,10,101); % -10,-9.9,-9.8.................10
G=Gaussian(x);
L=Lorentzian(x);
Y=conv(G,L); % 作完convolution會出現201個元素
index=(X+10.1).*10; % 這是為了找X是對應到Y的第幾個元素
N=fix(index); % 再確保是整數而已
V=Y(N);
說明:這檔案不過是做出一個Y的陣列,讓輸入的X對應到的值就好。
(黃色的字,影響準度)
問題:在命令視窗呼叫 Voigt(1.1)好了~會出現一個數值
但是如果一次想跑很多個,X1=linspace(-10,10,101);Y1=Voigt(X1);會出現
??? Subscript indices must either be real positive integers or logicals.
可是不是已經把index用fix變成整數了嗎?而且index運算完一定是正整數阿
請問各位大大~為何Voigt(X)跑一個可以,跑很多個X=linspace(a,b,step)卻不可以呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.222.184
※ 編輯: devil0631 來自: 140.115.222.184 (07/17 15:09)
推
07/17 15:58, , 1F
07/17 15:58, 1F
→
07/17 15:59, , 2F
07/17 15:59, 2F
→
07/17 16:00, , 3F
07/17 16:00, 3F
→
07/17 16:07, , 4F
07/17 16:07, 4F
→
07/17 16:07, , 5F
07/17 16:07, 5F
→
07/17 16:09, , 6F
07/17 16:09, 6F
→
07/17 16:11, , 7F
07/17 16:11, 7F
推
07/17 16:29, , 8F
07/17 16:29, 8F
→
07/17 16:41, , 9F
07/17 16:41, 9F
→
07/17 16:43, , 10F
07/17 16:43, 10F
推
07/17 16:46, , 11F
07/17 16:46, 11F
→
07/17 16:50, , 12F
07/17 16:50, 12F
推
07/17 16:51, , 13F
07/17 16:51, 13F
→
07/17 17:00, , 14F
07/17 17:00, 14F
→
07/17 17:08, , 15F
07/17 17:08, 15F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章