2

動作中のmatlab/octave mファイルがありますが、Mファイルを関数に変換して実行すると、関数で「関数名」というエラーが発生します。7行目16列目付近に「関数名」が定義されていません。

以下のworkngMファイルを参照してください。

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)

以下の機能:

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;

私はオクターブバージョン3.2.4とubuntu10.04linuxを使用しています

4

2 に答える 2

0

これはコメントではなく答えであるはずです:

ここでの問題は、おそらくテキストエディタの改行設定でした。'nixとwindowのデフォルトはわずかに異なり、一方はCR + LFを使用し、もう一方はLFのみを使用します。しかし、使用されるものは、個々のアプリケーションの好みの問題です。

おそらく興味深い読み物:改行に関するウィキペディア

于 2012-11-09T18:01:51.167 に答える
-1

申し訳ありませんが、別のテキストエディタで関数ファイルを編集すると、.m拡張子が.m.txtファイルに変更されたときに問題が修正されました。

于 2012-04-04T22:13:11.190 に答える