2012-04-04 13 views
2

私は動作するmatlab/octave mファイルを持っていますが、Mファイルを関数に変換して実行すると、 'function name'という行7の列16の近くで定義されていない関数でエラーが発生します。matlab/octaveのpermute関数

を参照してください以下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 10.04 Linuxのそれは.Mへの.m拡張子を変更し別のテキストエディタで関数ファイルを編集するとき、私は、問題を修正し

+0

は、おそらくあなたがoctave'で未定義 '「関数名」に、この記事のタイトルを変更する必要があります。 – zeffii

答えて

-1

申し訳ありませんが、みんなを使用しています。 txtファイル。

+0

ここでの問題は、おそらくテキストエディタの 'newline'設定であり、 'nixとwindowのデフォルトは少し異なり、CR + LFを使い、もう一つはLFを使うだけです。しかし、使用されるのは、個々のアプリケーションにおける優先事項です。多分興味深い読書:https://en.wikipedia.org/wiki/Newline – zeffii

0

これは、代わりにコメントの返事されている必要があります:

ここでの問題は、NIXとウィンドウがわずかに異なるデフォルト値を持っている」、おそらくあなたのテキストエディタで設定改行だったものが、CR + LFを使用し、他のちょうどLFを使用します。しかし、使用されるのは、個々のアプリケーションにおける優先事項です。

おそらく興味深い読み取り:この問題の本質は、並び替える機能とは何の関係もないようwikipedia on newlines