qq_34266867 2020-08-19 14:35 采纳率: 0%
浏览 6168

Matlab中错误使用 bsxfun 两个输入数组的非单一维度必须相互匹配。

P=xlsread('pasy','b2:e26')'; %从excel表pasy读取输入数据赋予矩阵P
T=xlsread('pasy','f2:f26')'; %从excel表pasy读取输出数据赋予矩阵T
[Pn,ps_p]=mapminmax(P); %将矩阵P归一化,结果保存在矩阵Pn中
[Tn,ps_t]=mapminmax(T); %将矩阵T中数据进行归一化,结果保存在矩阵Tn中

%创建网络
net=newff(Pn,Tn,10,{'tansig','purelin'},'trainlm');

inputweights=net.IW{1,1}; %当前输入层权重
inputbias=net.b{1}; %当前输入层阈值
layerweights=net.LW{2,1}; %当前网络层权重
layerbias=net.b{2}; %当前网络层阈值
net.trainParam.goal=0.001; %目标误差
net.trainParam.epochs=10000; %最大迭代次数
net=train(net,Pn,Tn); %调用trainlm算法训练网络
minmax_var=minmax(P); %求解P矩阵每个行向量得最小值和最大值
minmax_target=minmax(T); %求解T矩阵每个行向量得最小值和最大值

save De_train net %将网络net存储至De_train中

save('result','net','minmax_var','minmax_target') %将net、minmax_var及minmax_target存储至result中

%从excel表pasy读取测试组得输入输出数据分别赋予矩阵P_test和T_test
P_test=xlsread('pasy','b27:e31');
T_test=xlsread('pasy','f27:f31');

[Pn_test]=mapminmax('apply',P_test,ps_p); %对矩阵P_test做与矩阵P相同得归一化,结果存在Pn_test中

结果运行不出来
错误使用 bsxfun
两个输入数组的非单一维度必须相互匹配。

出错 mapminmax.apply (line 6)
y = bsxfun(@minus,x,settings.xoffset);

出错 nnet7.process_fcn (line 28)
out1 = info.apply(in2,out2);

出错 mapminmax (line 38)
y = nnet7.process_fcn(mfilename,x,varargin{:});
有大佬知道怎么解决吗?????

  • 写回答

3条回答 默认 最新

  • 梁博远 2021-10-20 22:08
    关注

    归一化对数据的要求与常识正好相反:
    即意思是要求归一化矩阵数据应该是每一列是一个样本,每一行是多个样本的同一维,即对于一个M*N的矩阵来说,样本的维度是M,样本数目是N,一共N列N个样本。
    简单来说就是把矩阵转置一下

    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境