How do I get these matrix dimensions to match using linspace?
2 ビュー (過去 30 日間)
古いコメントを表示
I am trying to write an audio algorithm to ramp up the amplitude of a .wav file but I am having problems getting getting the matrix dimensions to match in this line:
processed_waveform = input_waveform.*linspace(0, 1, length(input_waveform));
The error reads as follows:
Error using .*
Matrix dimensions must agree.
Error in Ex_1D (line 41)
processed_waveform = input_waveform.*linspace(0, 1, length(input_waveform));
I have tried using size() in place of length() but I still get the same issue. Any ideas? Thanks
0 件のコメント
採用された回答
Star Strider
2015 年 10 月 18 日
Most audio files are column vectors, and linspace produces a row vector.
Try this:
processed_waveform = input_waveform.*linspace(0, 1, length(input_waveform))';
Transposing the linspace vector should make them compatible. If ‘input_waveform’ is a two-column matrix (two-channel sound file), the code becomes:
processed_waveform = input_waveform.*[linspace(0, 1, length(input_waveform))', linspace(0, 1, length(input_waveform))'];
2 件のコメント
dpb
2015 年 10 月 18 日
I've long thought (and made the suggestion at least once as enhancement request) TMW should enhance this error message to explicitly note the orientation mismatch as a possbility when size(OP1)==size(OP2).' as the error occurs so often and the present missive, while correct, clearly doesn't provide guidance enough in many (most?) cases...
Star Strider
2015 年 10 月 18 日
Allowing a size argument that would automatically orient and replicate the resulting vector would be helpful, but we’re not there yet.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Audio I/O and Waveform Generation についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!