%% 导入电子表格中的数据 % 用于从以下电子表格导入数据的脚本: % % 工作簿: D:\学习\数学建模\2020C\熵权法指标.xlsx % 工作表: Sheet1 % % 由 MATLAB 于 2023-07-12 12:23:49 自动生成 %% 设置导入选项并导入数据 opts = spreadsheetImportOptions("NumVariables", 2); % 指定工作表和范围 opts.Sheet = "Sheet1"; opts.DataRange = "A2:B303"; % 指定列名称和类型 opts.VariableNames = ["scale", "industry"]; opts.VariableTypes = ["double", "double"]; % 导入数据 index = readtable("D:\学习\数学建模\2020C\熵权法指标.xlsx", opts, "UseExcel", false); %% 清除临时变量 clear opts stdindex = zscore(index); % 对数据进行标准化为什么会报错错误使用 sum 数据类型无效。第一个参数必须为数值或逻辑值。 出错 mean (第 127 行) y = sum(x, dim, flag) ./ mysize(x,dim); 出错 zscore (第 54 行) mu = mean(x,dim); 出错 shangquanmethod (第 26 行) stdindex = zscore(index); % 对数据进行标准化
时间: 2024-04-13 12:27:24 浏览: 185
根据你提供的代码和错误信息,问题可能出现在数据导入过程中。请确保你的电子表格文件路径和工作表名称正确,并且数据范围包含有效的数据。
另外,根据错误信息,似乎你的数据包含非数值类型的变量。请确保你的电子表格中的数据都是数值类型并且不包含任何非数值的单元格。
如果你确定导入的数据是正确的数值类型,你可以尝试以下解决方法:
1. 检查工作表中数据的格式:确保每个单元格都是数值类型,并且没有任何非数值类型的内容。
2. 检查数据导入选项:确认在 `spreadsheetImportOptions` 中设置了正确的 `NumVariables` 值,以确保与实际的列数匹配。
3. 检查数据范围:确认 `DataRange` 的范围正确,并且包含有效的数据。
4. 尝试手动指定数据类型:如果你确定数据导入选项无误,可以尝试手动指定变量类型,例如 `opts.VariableTypes = ["double", "double"];`。
如果问题仍然存在,请提供更多详细信息,例如你的数据示例和完整的错误信息,以便我们更好地帮助你解决问题。
阅读全文