我有一个正在运行的matlab / octave m文件,但是当我将M文件转换为函数并运行它时,我在第7行第16列附近的'函数名'未定义的函数中出现错误。
请参阅下面的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)
以下功能:
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;
我正在使用octave版本3.2.4和ubuntu 10.04 linux
答案 0 :(得分:0)
这应该是答案而不是评论:
这里的问题很可能是文本编辑器中的换行设置,'nix和window的默认值略有不同,一个使用CR + LF而另一个只使用LF。但是所使用的是个别应用中的偏好问题。
也许是一本有趣的读物:wikipedia on newlines
答案 1 :(得分:-1)
很抱歉,我在其他文本编辑器中编辑函数文件时修复了问题,它将.m扩展名更改为.m.txt文件。