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

Octave中loadData函数错误排查:无法正确生成设计矩阵与输出向量

问题排查与修正方案

原代码的核心错误

  • 重复调用load(filename)三次,完全冗余且浪费资源
  • rows(filename)和size(filename)用法错误:filename是字符串,不能直接用这两个函数获取数据维度,必须基于加载后的data矩阵操作
  • 未生成带偏置项的设计矩阵X,也未正确提取输出向量y
  • 函数末尾没有返回正确的X和y值

修正后的代码

function [X,y] = loadData(filename)
    % 加载数据文件
    data = load(filename);
    % 获取样本数m和总列数,计算特征数n(总列数减1,因最后一列是输出y)
    [m, total_cols] = size(data);
    n = total_cols - 1;
    
    % 生成设计矩阵X:添加全1偏置列,拼接前n列特征
    X = [ones(m, 1), data(:, 1:n)];
    % 提取最后一列作为输出向量y
    y = data(:, end);
end

代码说明

  • 仅加载一次数据到data矩阵,避免重复IO操作
  • 通过size(data)获取真实数据维度:m为样本行数,total_cols为总列数(包含特征与输出)
  • 设计矩阵X的构造:先添加全1列作为偏置项,再拼接原数据的前n列特征,最终得到m×(n+1)的矩阵
  • 直接取data的最后一列作为输出向量y,确保与需求匹配

内容的提问来源于stack exchange,提问作者Spandana Susal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:50:25