matlab 径向基插值,Matlab如何使用RBF神经网络插值

题目要求:已知三列数据保存在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是个数组,数组不也是矩阵的一种形式吗?

你可能感兴趣的:(matlab,径向基插值)