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

如何获得指定尺寸的矩阵:Matlab初始化7行NOJ矩阵却得到14行问题

问题原因
  • Matlab矩阵的下标从1开始计数,当你对超出当前矩阵维度的下标位置直接赋值时,Matlab会自动将矩阵扩展到对应大小,不会触发报错。
  • 你循环中x的取值为2、4、6、8、10、12、14,最大下标达到14,初始定义的7行zeros(7,65)会被自动扩展为14行,矩阵中第1、3、5等奇数行都是默认填充的0值,最终就得到了14×65的矩阵。
解决方法

方法1:用循环计数作为行下标(推荐)

单独定义x的取值列表,用循环的计数变量对应矩阵的行位置,修改后代码如下:

NOJ = zeros(7,65);
x_list = 2:2:14;
for idx = 1:length(x_list)
    x = x_list(idx);
    NOJ(idx,:) = (1- sqrt(1-inflow_CT))./(1+(2*kNOJfit*x/2)).^2;
end

最终得到的7行矩阵,第1行对应x=2的计算结果,第2行对应x=4的计算结果,以此类推。

方法2:运行原代码后提取目标行

如果你需要保留x取值和行号的对应逻辑,运行完你原有代码后,单独提取偶数行即可得到7×65的矩阵:

NOJ = NOJ(2:2:14,:);

内容的提问来源于stack exchange,提问作者dilek-o

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:24:03