2012-04-04 8 views
2

Ich habe eine funktionierende Matlab/Oktave m Datei, aber wenn ich die M Datei in eine Funktion umwandle und laufe bekomme ich einen Fehler in der Funktion 'Funktionsname' undefiniert nahe Zeile 7 Spalte 16.Permutationsfunktion in Matlab/Oktave

Siehe workng M-Datei unter:

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 

Siehe M-Datei und Funktion unter dem erstellt funktioniert nicht, wenn

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

Funktion unter:

function [array_shifted]=rtpsa(sigarray,deg_to_shift) 
    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(deg_to_shift,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; 

end; 

Ich verwende Oktave Version 3.2.4 und Ubuntu 10.04 Linux

+0

vielleicht sollten Sie den Titel dieses Beitrags zu '‚Funktionsname‘in octave' undefined ändern, wie die Natur dieses Problem nichts mit der permute Funktion zu tun hat. – zeffii

Antwort

-1

Sorry Leute ich das Problem behoben, wenn die Funktion Datei in einem anderen Texteditor Bearbeitung verändert es die .m Erweiterung zu einem .m. TXT-Datei.

+0

Das Problem hier war höchstwahrscheinlich die 'newline' Einstellung in Ihrem Texteditor, 'nix und window haben etwas andere Standardeinstellungen, einer verwendet CR + LF und der andere benutzt nur LF. Was aber verwendet wird, ist eine Vorliebe für einzelne Anwendungen. Vielleicht eine interessante Lektüre: https://en.wikipedia.org/wiki/Newline – zeffii

0

Dies sollte eine Antwort anstelle einen Kommentar hat:

Das hier Problem war höchstwahrscheinlich die Newline Einstellung in Ihrem Text-Editor ‚nichts und Fenster etwas andere Standardwerte haben, verwendet man CR + LF und die anderen verwendet nur LF. Was aber verwendet wird, ist eine Vorliebe für einzelne Anwendungen.

Vielleicht eine interessante Lektüre: wikipedia on newlines