题目要求:已知三列数据保存在wii11.txt中,如下(实际数据很多,这里只是其中一小部分)
38.68147542 97.27365527 4650.124337
38.68148031 97.27364728 4650.285706
38.68148407 97.27363961 4650.52369
38.68148474 97.27363176 4650.43855
38.68148599 97.27362353 4650.572702
38.68148671 97.2736137 4650.935014
38.68148912 97.27360453 4651.527041
38.68149498 97.27359854 4652.036195
....... ........... ................
根据这些实际测量的数据,利用RBF神经网络,做函数拟合或者说插值,来预测一定范围内其它点的值。
我的思路是前两列作为输入,后一列作为输出,利用newrb来做网络。程序如下
clc;
clear;
close all;
MyData=load('wii11.txt');
MyData
x1=MyData(:,1);
x2=MyData(:,2);
eg=0.000001;%均方差精度
Par=MyData(:,1:2)'; %Par ,二维输入参数X,Y,,行数是参数个数 ,列数是样本数
%Par=Par';
Result=MyData(:,3)';%Result ,力P,一维结果,列数是样本数
%Result=Result';
net=newrb( Par,Result,eg); %新建网络,help newrb 查找newrb帮助
NewResult=sim(net,Par);%仿真,预测(0.5,0.5,0.5)上的力P
mesh(x1',x2',NewResult')
问题1:程序运行不断的出现如下Warning: Rank deficient, rank = 5 tol = 2.8641e-012.
> In D:\MATLAB6p5\toolbox\nnet\nnet\newrb.m (solvelin2) at line 243
In D:\MATLAB6p5\toolbox\nnet\nnet\newrb.m (designrb) at line 200
In D:\MATLAB6p5\toolbox\nnet\nnet\newrb.m at line 130
In d:\MATLAB6p5\work\rbf.m at line 13
请问这是为什么?
问题2:运行结束出现如下error
??? Error using ==> surface
Z must be a matrix, not a scalar or vector.
Error in ==> D:\MATLAB6p5\toolbox\matlab\graph3d\mesh.m
On line 89 ==> hh = surface(x,'FaceColor',fc,'EdgeColor','flat', 'FaceLighting', 'none', 'EdgeLighting', 'flat');
Error in ==> d:\MATLAB6p5\work\rbf.m
On line 16 ==> mesh(x1',x2',NewResult)
这是为什么呢,NewResult是个数组,数组不也是矩阵的一种形式吗?