You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Octave编写C大调音阶音频文件出现参数不匹配错误如何解决

问题原因

  • 维度匹配错误:你当前的X是1×7的频率行向量,t是1×8821的时间行向量,逐元素运算要求两个数组维度完全一致,维度不对应导致运算失败。你需要把X转置为列向量,利用Octave的广播机制,让每个频率分别和整个时间序列做运算,生成7行(每一行对应一个音阶的采样)的音频数组。
  • audiowrite参数错误:你现在传入的第二个参数是频率数组X,实际应该传入生成的音频采样序列x,同时文件名需要补充音频格式后缀(比如.wav),否则audiowrite无法识别输出格式。

修正后代码

# Scale Frequencies
x_1 = 261.6256;
x_2 = 293.6648;
x_3 = 329.6276;
x_4 = 349.2282;
x_5 = 391.9954;
x_6 = 440.0000;
x_7 = 493.8833;

X = [x_1, x_2, x_3, x_4, x_5, x_6, x_7];

fs = 2*44100; T = 0.1;
t = [0 : 1/fs : T];
A = 0.5;
% 把X转置为列向量后再运算,触发广播
x = A .* sin(2 .* pi .* X' .* t);
% 拉平为单通道序列实现按顺序播放7个音,同时补充文件名后缀
audiowrite('musicnotes.wav', x(:), fs)

内容的提问来源于stack exchange,提问作者Steel Angel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:27:02