2012-04-04 214 views
2

我有一個可用的matlab/octave m文件,但是當我將M文件轉換爲函數並運行它時,出現函數說'函數名'未定義在第7行第16列附近。在matlab中的permute函數/ octave

見下workng M檔:

clear all, clc,clf,tic 
fs=360; 
t=linspace(0,2*pi,fs); 
y=sinc(t*1); 
sigarray=y; 

fs=length(sigarray); 
aa_sig_combined_L=zeros(1,length(fs)); %need to reset or will get noise at the end 
a_L=zeros(1,length(sigarray)); 

cycle_permute_lt = @(sigarray, k) [sigarray(mod((1:end)+k-1, end)+1)]; 
array_phase_shift_div_num=360/mod(180,360) %keep at 360 to get correct deg angles 
array_phase_shift=round(fs/array_phase_shift_div_num) %will keep within 360 degs 

for ii=0:1:fs 
    a_L=cycle_permute_lt(sigarray, ii+array_phase_shift); 
    aa_sig_combined_L = aa_sig_combined_L + a_L;   

end; 
array_shifted=aa_sig_combined_L; 

subplot(2,1,1),plot(t,y), 
title('original') 
subplot(2,1,2),plot(t,aa_sig_combined_L) 
str_title='aa_sig_combined_L'; 
title(str_title,'Interpreter','none') %turns of latex interperter so I can use underscores my way 

見M檔及以下創建不起作用低於

clear all, clc,clf,tic 
fs=360; 
t=linspace(0,2*pi,fs); 
y=sinc(t*1); 
sigarray=y; 
[array_shifted]=rtpsa(y,180) 

功能訪問時功能:

​​

我使用倍頻版本3.2.4和Ubuntu Linux的10.04

+0

也許你應該這篇文章的標題更改爲octave'未定義'「函數名稱」作爲這個問題的本質無關與置換功能。 – zeffii 2012-11-09 18:03:39

回答

-1

對不起球員在不同的文本編輯器編輯功能文件時我固定的問題它改變了.M擴展到.M。 txt文件。

+0

這裏的問題很可能是文本編輯器中的'newline'設置,'nix和window默認值略有不同,一個使用CR + LF,另一個使用LF。但是,使用什麼是個人應用程序的偏好問題。也許是一個有趣的閱讀:https://en.wikipedia.org/wiki/Newline – zeffii 2012-11-09 16:50:37

0

這應該是一個答案,而不是評論:

這裏的問題是最有可能在你的文本編輯器中的換行設定,「尼克斯和窗口略有不同的默認值,一個使用CR + LF和其他只是使用LF。但是,使用什麼是個人應用程序的偏好問題。

也許是一個有趣的閱讀:wikipedia on newlines