2016-05-07 8 views
-2

長いオーディオラインを分けようとしていますが、Octave 4.0がクラッシュすると、私はOctave 4.0(これはmatlabのようなものです)をUbuntu 16.04 64bitで使用しています。Octave 4.0がaudiowriteでクラッシュする

audio_prop='BitsPerSample',16,'Artist','artist rt','Title','title section rt','Comment','Comments section rt'; 
audiowrite('/tmp/test.wav',[sig_full_L(:) -1*sig_full_R(:)],44100,audio_prop) 

どうすれば分割できないのですか?

誰かが

fs =8000;     % Sampling frequency 
fs_rate=fs; 
dursec=10; %%duration of signal in seconds 

t=linspace(0,2*pi,dursec*fs); 
freq=primes(fs/2*dursec); 
freq=freq'; 

ya=zeros(1,length(t)); 
numfreq=numel(freq) 

for ii=1:1:numel(freq) 
    ya = ya+sin(freq(ii,1)*t); 
end 
audio_prop='BitsPerSample',16,'Artist','artist rt','Title','title section rt','Comment','Comments section rt'; 
audiowrite('/tmp/test.flac',[ya(:) -1*ya(:)],44100,audio_prop) 

私は https://savannah.gnu.org/bugs/index.php?47875

以下のクラッシュ/バグレポートのリンクを記入するオクターブの人々によって言われた(これはクラッシュするオクターブ4.0を起こす)ことがあるので、ここで完全なコードを求め
+2

[mvce](http://stackoverflow.com/help/mcve)に時間を割いてください。与えられたコードはまったく動作しません。最初の行であっても間違っています。角括弧( '{}')がそのまわりにありません。また、2行目で 'audio_prop {:}'にする必要があります。 – ederag

+0

@ederagもっとコードを追加しましたが、問題は2本のオリジナルラインにあります。 –

+0

@ederagはい、これらの2行に構文上の問題がありました。 Thanks –

答えて

0

は別の機能に短い行するために単一の変数、 への引数の長いリストをラップするか、再利用を可能にする一つの方法であります。

最初に引数をcell arrayに入れてください。

options = {"a", "b", 2}; 

そしてthereビット隠されているセルアレイ拡張を使用:

オペレータがcomma separated listもたらす「{」と「}」とセルアレイの複数の要素にアクセスします我々の場合には要求されたすべての 要素

の10
options{:} 

はそう質問に答える

func(arg1, arg2, "a", "b", 2) 

として解釈され

func(arg1, arg2, options{:}) 

を呼び出す

"a", "b", 2 

として解釈されます。

0

@ederagは私のためにこれを解決しました。 「最初の行であっても間違っています。ブラケット({})が欠けていて、2行目にaudio_prop {:}でなければなりません。

エラーとコードは次のようになります。ここでは

audio_prop={'BitsPerSample',16,'Artist','artist rt','Title','title section rt','Comment','Comments section rt'}; 
audiowrite('/tmp/test.wav',[sig_full_L(:) -1*sig_full_R(:)],44100,audio_prop{:}) 
関連する問題