matlab 画图大神帮忙看下这里哪有问题

请问一下我这个matlab程序怎样进行数据归一化才能出结果,怕没有人解答先50,有大神愿意帮忙我再增加悬赏_百度知道
请问一下我这个matlab程序怎样进行数据归一化才能出结果,怕没有人解答先50,有大神愿意帮忙我再增加悬赏
T);&gt,P.8759 0; net.7 3. 0 0 1;0 0 1 0 0.5 30;%建立bp神经网路&gt.3 12;92 56 42 35 0,10.8 33; net.7 24;0 0 0 1 0.;&logsig&#39.2 0.2..3063 11; T=[1 0 0 0 0.6 8;0 0 0 1 0. 12.4 8. 0 1 0.6 5. 0 0 0 1;30.2597 25,T. 1 0 0 0..trainparam.5 11;15.trainparam.4;0 0 0 0 1. 60.;tansig&#39..1623 13;%bp网络的仿真&1 0 0 0 0;200 46 16 109 128.9 6.. 1;20;87.9.6 18. 0 0 0 1.8 26.;30..lr=0;&gt.7 0;0 1 0 0 0,P).0032 0;120.8 13;89;0 0 0 0 1];0 1 0 0 0;0 1 0 0 0.4.1101 39.trainparam.7027 1;%参数的设置&gt.7 0..;0 0 1 0 0;3.52;24. 0 1 0 0.;&gt. 1 0 0 0.5.6311;&&gt..1862 31;&gt.8 9.9 10.2081 6.mc=0. 3;1;0 0 1 0 0,&#39.9.;46.2;0 0 0 1 0;44.9 4;&gt.0 24;0 0 0 0 1.5 36.7 9.001.4858;&gt..6 44;84;0 0 0 0 1;1 0 0 0 0.0 10;trainrp&#39.8 0.4058 4;31;33.3 22.2 16.. 0 1 0 0.4 1.0 120;0 0 0 1 0.9117 7;&gt.2 9.2 44.1;0 0 1 0 0.3 6;32.2 13;0 0 1 0 0.7.;42 97 156 598 0.6].1;0 1 0 0 0;33;1 0 0 0 0.show=50;42. 33.4 2.9 0.;&gt.2154; net.6 19. 0 0 0 0;&gt.5 0;0 0 0 1 0.7.6 7;0 0 0 1 0;}.;&98 122 31 292 15.2;0 0 1 0 0.0 24.5 2.0 83; [net tr]=train(46;0 1 0 0 0;7.8259 66.epochs=;12;17.trainparam.5 0..0173 18;72 512 138 1200 5,{&#39.5 18;);57.7 12; net=newff(P.;&gt.8.2 5. 0.0035 27; E=T-A,R); A=sim(net.;0 0 1 0 0.3094;&gt.3 0; 46 0.7 15.5 8..goal=0.5 30;Z=sim(net.;61.6 38,&#39.5157;&&0 0 0 0 1;;&%采用弹性bp算法训练& MSE=mse(E);gensim(net) R=[7.5 2.3 1P=[39
提问者采纳
98 0.6 0.0000
0.94 5.38 3:p=[44.23 0.6以上版本都有再带的归一化函数.85 1.32 2.0000
0.81 2.0075
0;(max(t(i.0000
0.81 2.0112
0.62 44.8269
1:))-min(t(i.0296
0:5T(i.80 0;enddata1=P&#39.32 1.2 0.95 1.2 0.76 3,.58 4.9392
0.73 3.77 0,比如说mapminmax 你的p是5*18矩阵 t是5*5矩阵,你结果输出就是P和T矩阵.0255
0.48 0.0824
0.60]for i=1.0325
0.6 0.21 0.2]t=[46:)))&#47.77 1.13 53.13 0,.98 0.0032
0.247.95 1:5P(i.0102
0.95 0:)));endfor i=1.0106
0:)=(p(i.98 0,你的归一化程序没错:))-min(p(i.0781
0.61 0。我在线 matlab里面7.21 0.44 0.0806
0.253.0283
1.83 1.68 0.53 2.0000
0.8450.0547
0.13 47.8891
0.21 0.6 0.9982
%转置得到18*5data2=T&#39.04 4.98 0:))).94 5.0361
0:)-min(p(i.0580
0.58 4.52 51,我帮你归一化.0703
0.77 1,:)=(t(i.37 2.0081
0你把想要归一化的数据贴上来。.0157
0.39 0.07 2.0605
0.76 3.0093
0.77 1.53 2.48 0.01 0.0284
0。.5355,.0014
0:data1 =
0,我帮你实现了.28 3.94 5.0000
0.29 50.38 3.0582
0,请看结果.0583
0.13 50.68 0.0748
0.2 0.53 2,.64 0.04 3.40 1.0375
0.00 2.0072
0;(max(p(i.7703
0.64 1.77 1.0581
0.64 0.81 2.0070
0.90 2.61 0.0921
0.62 44.04 2.0107
0.62 4.53 2,.94 2.0079
0.03 0.0373
0.72 0.32 2.0000
%转置得到5*5最后结果是,.8803
1.54 4.32 1.6 0.2 0.31 4.0179
0.253,.0106
0.79 1.6 0.80 4.0000
0,.04 3.8281
0.52 53.94 5.0291
0.94 3.85 1.0075
0.44 0.0090
0.73 3.31 4.0106
0.90 44.9985
0.26 3.44 61.0393
0.07 0,.46 4.6846.2 0.0653
0.257.82 3.0227
0.21 0.81 2.7250.30 2:)-min(t(i.0430
0:)))&#47.0605
0,很简单的
朋友,我就是归一化上面的P,T,R,三个矩阵中的数据,。
提问者评价
来自团队:
其他类似问题
归一化的相关知识
等待您来回答
为您推荐:
下载知道APP
随时随地咨询
出门在外也不愁&& 查看话题
小弟初学matlab,有大神解读下下这个例子么??
rt& &显示的结果是得出了k和n,但是没看出里面哪里计算的k和n的值。
& && &后面两个 function 也不懂。求大神知道,俺是小白。
function KineticsEst1_Diff&&
% 动力学参数辨识: 用微分法进行反应速率分析得到速率常数k和反应级数n
% Analysis of kinetic rate data by using the differential method
%& &Author: HUANG Huajiang
%& &Copyright 2003 UNILAB Research Center,
%& &East China University of Science and Technology, Shanghai, PRC
%& &$Revision: 1.0 $&&$Date:
% Reaction of the type -- rate = kCA^order
% order - reaction order
% rate -- reaction rate vector
% CA -- concentration vector for reactant A
% T -- vector of reaction time
% N -- number of data points
% k- reacion rate constant
% 动力学数据
% 用最小二乘样条拟合法计算微分dCA/dt--使用不经过实验点的B样条插值函数
knots = 6;
K = 3;& && && && && && &% 三次B样条
sp = spap2(knots,K,t,CAm);
pp = fnder(sp);& && && &% 计算B样条函数的导函数
dCAdt = fnval(pp,t);& & % 计算t处的导函数值
% 绘制浓度拟合曲线
ti = linspace(t(1),t(end),200);
CAi = fnval(sp,ti);
plot(t,CAm,'ro',ti,CAi,'b-')
xlabel('t')
ylabel('C_A')
legend('实验值','B样条拟合')
% 非线性拟合
& & lsqnonlin(@OptObjFunc,beta0,,,,rAm,CAm);& && && &
ci = nlparci(beta,residual,jacobian);
% 参数辨识结果
fprintf('Estimated Parameters:\n')
fprintf('\tk = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\tn = %.2f ± %.2f\n',beta(2),ci(2,2)-beta(2))
fprintf('&&The sum of the squares is: %.1e\n\n',sum(residual.^2))
% 绘制反应速率拟合曲线
plot(t,rAm,'ro',t,Rate(CAm,beta),'b*')
xlabel('t')
ylabel('dC_Adt')
legend('Experiment','Kinetic Model')
% ------------------------------------------------------------------
function f = OptObjFunc(beta,rAm,CAm)
rAc = Rate(CAm,beta);
f = rAc - rAm;
% ------------------------------------------------------------------
function rA = Rate(CA,beta)
rA = -beta(1)*CA.^beta(2);& &% -rA = -dCAdt = k*CA^n, 其中k=beta(1), n=beta(2)
问题1:“rt& &显示的结果是得出了k和n,但是没看出里面哪里计算的k和n的值?“
答:原程序最后一行有说明”function rA = Rate(CA,beta)
rA = -beta(1)*CA.^beta(2);& &% -rA = -dCAdt = k*CA^n, 其中k=beta(1), n=beta(2)“
问题2:”后面两个 function 也不懂。“
答:最后一行的function:”function rA = Rate(CA,beta)
rA = -beta(1)*CA.^beta(2);“
作用是定义待拟合的常微方程的,需要拟合的变量k和n分别用beta(1)和beta(2)表示的。
倒数第二个function”unction f = OptObjFunc(beta,rAm,CAm)
rAc = Rate(CAm,beta);
f = rAc - rAm;“
作用是定义目标函数,这里稍微讲一下原理:这里用的是最小二乘法来拟合,对于这里的具体问题,在算法中会不断的调节k和n的数值,使得计算值与实验值之差的平方和尽量小,该算法会在一定区间之内搜索,在一定区间内,搜索出使得上述平方和最小的k和n值,即为待求的拟合参数。 : Originally posted by 月只蓝 at
问题1:“rt& &显示的结果是得出了k和n,但是没看出里面哪里计算的k和n的值?“
答:原程序最后一行有说明”function rA = Rate(CA,beta)
rA = -beta(1)*CA.^beta(2);& &% -rA = -dCAdt = k*CA^n, 其中k=beta(1), ... 谢谢大神相助
& & lsqnonlin(@OptObjFunc,beta0,,,,rAm,CAm);中用到了OptObjFunc&&是不是就是最后一个 function 中&&rAc - rAm 呢? : Originally posted by 在捂汗 at
谢谢大神相助
& & lsqnonlin(@OptObjFunc,beta0,,,,rAm,CAm);中用到了OptObjFunc&&是不是就是最后一个 function 中&&rAc - rAm 呢?... 是的。 : Originally posted by 月只蓝 at
是的。... 我把数据换成了我的,怎么就出错了呢,其中
是我的数据,beta0 = 是我用线性拟合确定的初值。
但是出现了错误,
??? Error using ==& lsqncommon at 101
LSQNONLIN cannot continue because user supplied objective function failed with the following error:
Error using ==& minus
Matrix dimensions must agree.
Error in ==& lsqnonlin at 181
Error in ==& KineticsEst1_int1 at 29
不知道怎么改,麻烦大神给看看
function KineticsEst1_int1
% 动力学参数辨识: 用积分法进行反应速率分析得到速率常数k和反应级数n
% Analysis of kinetic rate data by using the integral method
%& &Author: HUANG Huajiang
%& &Copyright 2003 UNILAB Research Center,
%& &East China University of Science and Technology, Shanghai, PRC
%& &$Revision: 1.0 $&&$Date:
% Reaction of the type -- rate = kCA^order
% order - reaction order
% rate -- reaction rate vector
% CA -- concentration vector for reactant A
% T -- vector of reaction time
% N -- number of data points
% k- reacion rate constant
global CAm
% 非线性拟合
CA0 = 22.7063;
& & lsqnonlin(@OptObjFunc,beta0,,,,tspan,CA0,CAm)
ci = nlparci(beta,resid,jacobian)
% 拟合效果图(实验与拟合的比较)
= ode45(@KineticsEqs,,CA0,,beta);
plot(t,CAm,'bo',t4plot,CA4plot,'k-')
legend('Exp','Model')
xlabel('时间t, s')
ylabel('浓度C_A, mol/L')
% 残差关于拟合值的残差图
= ode45(@KineticsEqs,tspan,CA0,,beta);
plot(CAc,resid,'*')
xlabel('浓度拟合值(mol/L)')
ylabel('残差R (mol/L)')
refline(0,0)
% 参数辨识结果
fprintf('Estimated Parameters:\n')
fprintf('\tk = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\tn = %.2f ± %.2f\n',beta(2),ci(2,2)-beta(2))
% ------------------------------------------------------------------
function f = OptObjFunc(beta,tspan,CA0,CAm)
= ode45(@KineticsEqs,tspan,CA0,,beta);
f = CAc - CAm;
% ------------------------------------------------------------------
function dCAdt = KineticsEqs(t,CA,beta)
dCAdt = -beta(1)*CA^beta(2);& && && && &% k = beta(1), n = beta(2) : Originally posted by 在捂汗 at
我把数据换成了我的,怎么就出错了呢,其中
是我的数据,beta0 = 是我用线性拟合确定的初值。
但是出现了错误,
??? Error using ==& lsqncommon at 101
LSQNONLIN cannot continue becaus ... 数组的维数要一致。
function KineticsEst1_int1
% 动力学参数辨识: 用积分法进行反应速率分析得到速率常数k和反应级数n
% Analysis of kinetic rate data by using the integral method
%& &Author: HUANG Huajiang
%& &Copyright 2003 UNILAB Research Center,
%& &East China University of Science and Technology, Shanghai, PRC
%& &$Revision: 1.0 $&&$Date:
% Reaction of the type -- rate = kCA^order
% order - reaction order
% rate -- reaction rate vector
% CA -- concentration vector for reactant A
% T -- vector of reaction time
% N -- number of data points
% k- reacion rate constant
global CAm
% 非线性拟合
CA0 = 22.7063;
& & lsqnonlin(@OptObjFunc,beta0,,,,tspan,CA0,CAm)
ci = nlparci(beta,resid,jacobian)
% 拟合效果图(实验与拟合的比较)
= ode45(@KineticsEqs,,CA0,,beta);
plot(t,CAm,'bo',t4plot,CA4plot,'k-')
legend('Exp','Model')
xlabel('时间t, s')
ylabel('浓度C_A, mol/L')
% 残差关于拟合值的残差图
= ode45(@KineticsEqs,tspan,CA0,,beta);
plot(CAc,resid,'*')
xlabel('浓度拟合值(mol/L)')
ylabel('残差R (mol/L)')
refline(0,0)
% 参数辨识结果
fprintf('Estimated Parameters:\n')
fprintf('\tk = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\tn = %.2f ± %.2f\n',beta(2),ci(2,2)-beta(2))
% ------------------------------------------------------------------
function f = OptObjFunc(beta,tspan,CA0,CAm)
= ode45(@KineticsEqs,tspan,CA0,,beta);
f = CAc - CAm;
% ------------------------------------------------------------------
function dCAdt = KineticsEqs(t,CA,beta)
dCAdt = -beta(1)*CA^beta(2);& && && && &% k = beta(1), n = beta(2)
& & 0.1638& & 1.0942
& & 0.7318
& && && &0
& &-0.1254
& & 0.0005
& & 0.3669
& &-0.0538
& &-0.7165
& &-0.2554
exitflag =
& & firstorderopt: 0.0020
& && & iterations: 9
& && &&&funcCount: 30
& &&&cgiterations: 0
& && &&&algorithm: 'large-scale: trust-region reflective Newton'
& && && & message:
& & lower:
& & upper:
jacobian =
& &(2,1)& &&&-42.3555
& &(3,1)& &&&-42.6431
& &(4,1)& &&&-26.2876
& &(5,1)& &&&-14.6784
& &(6,1)& && &-4.4588
& &(7,1)& && &-1.4408
& &(2,2)& &&&-19.7841
& &(3,2)& &&&-16.3020
& &(4,2)& && &-7.9806
& &(5,2)& && &-3.3530
& &(6,2)& && &-0.4014
& &(7,2)& && & 0.0520
& & 0.0826& & 0.2451
& & 0.8918& & 1.2966
Estimated Parameters:
& & & & k = 0.1638 ± 0.0813
& & & & n = 1.09 ± 0.20
&& 谢谢大神指点,不过没理解这个数组维数一致是说的哪里?小弟比较小白,要是问了什么比较白痴的问题莫要见怪。 : Originally posted by 月只蓝 at
数组的维数要一致。
function KineticsEst1_int1
% 动力学参数辨识: 用积分法进行反应速率分析得到速率常数k和反应级数n
% Analysis of kinetic rate data by using the integral method
%& &Author: HUANG ... 为什么我把代码直接复制回去还是会出现错误???
??? Error using ==& lsqncommon at 101
LSQNONLIN cannot continue because user supplied objective function failed with the following error:
Error using ==& minus
Matrix dimensions must agree.
Error in ==& lsqnonlin at 181
Error in ==& KineticsEst1_int12 at 29
= ... : Originally posted by 在捂汗 at
为什么我把代码直接复制回去还是会出现错误???
??? Error using ==& lsqncommon at 101
LSQNONLIN cannot continue because user supplied objective function failed with the following error:
Error u ... 见附件哈。 : Originally posted by 月只蓝 at
见附件哈。... 看这个模型的残差图好像拟合效果不是很好啊!!!能在哪里修改下么?不会上图了。。用Matlab解决散热片中的热传导~~刚接触matlab,求帮助~~ 小弟刚学Matlab,还不太懂,有哪位大神帮我看下这道题,只要第1题的a)小问就行~~~_百度作业帮
拍照搜题,秒出答案
用Matlab解决散热片中的热传导~~刚接触matlab,求帮助~~ 小弟刚学Matlab,还不太懂,有哪位大神帮我看下这道题,只要第1题的a)小问就行~~~
用Matlab解决散热片中的热传导~~刚接触matlab,求帮助~~&小弟刚学Matlab,还不太懂,有哪位大神帮我看下这道题,只要第1题的a)小问就行~~~
我只给你思路啦!初一的吧,好简单。设∠BOC为x度,用x可以表示∠BOD,然后解方程,最后x为56,就是所求角的度数。望选为满意回答!!大神帮忙看看哪里有问题,_matlab吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:73,251贴子:
大神帮忙看看哪里有问题,收藏
clearclcn=100;x=randn(n,1);m=floor(n^(2/3));for s=1:n
lamda(s)=2*pi*s/n;endfor j=1:m
y(t)=x(t)*exp(sqrt(-1)*t*lamda(j));
lx(j)=1/(2*pi*n)*(abs(sum(y)))^2;
endfor i=1:m
w(i)=log(lamda(i));endfor d1=-0.499:0.001:0.499
z(i)=(lamda(i))^(2*d1)*lx(i);
Rn()=log(1/m*(sum(z)))-2*d1/m*sum(w);d1end
d=argmin(Rn()); 提示错误Attempted to access Rn(33);
index must be apositive integer or logical.Error in ==& Untitled at 24
Rn()=log(1/m*(sum(z)))-2*d1/m*sum(w);
Rn()=log(1/m*(sum(z)))-2*d1/m*sum(w);log () 必须得保证里面的数是正数啊
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或&& 查看话题
实在是看不出这段matlab程序里哪里出错了,请大家帮忙看看!
& & for i=1:Tn(L)& &&&
& && &&&if L==1
& && && && &sum_index=i;
& && &&&else
& && && && &sum_index=sum(Tn(1:L-1))+i;
& && &&&end
& && &&&y=D(:,sum_index);
& && &&&if sum_index==1
& && && && &re_index=2:n;
& && &&&elseif sum_index==n
& && && && &re_index=1:n-1;
& && &&&else
& && && && &re_index=;
& && && &end
如上第一次循环中sum_index应该为1,re_index应该为2:n.但一运行就出错显示re_index根本没被赋值,是空的。这是怎么回事,我看了好多遍程序实在看不出哪里有错误,希望大家多帮忙啊!
你设个断点一步一步跟进去看看 : Originally posted by teshuvah at
你设个断点一步一步跟进去看看 我这个是函数里的一小段,设置了显示sum_index的值是没问题的,就是re_index不知道为什么会赋不上值,感觉程序挺简单不应该啊 if有else块,re_index肯定会被赋值,也就是下面这行肯定会被运行到
& && && && &re_index=;
但是你说没有值,在这行前面加2句:
然后运行看看输出什么值.
因为虽然在matlab中a:b是生成a到b的序列,但是如果b&a,就会生成空矩阵. 从Debug 单步跟踪的结果来看,第一次运行的结果是对的。
re_index的值是。
示例如下: 不知道D的用途,将其屏蔽,本函数简化成一个加法函数。
function =t1(Tn,c)
% This is a test function
n=length(Tn);
& &&&for i=1:Tn(L)& &&&
& && && &if L==1
& && && && & sum_index=i;
& && && &else
& && && && & sum_index=sum(Tn(1:L-1))+i;
& && && &end
& && &&&% y=D(:,sum_index);
& && && &if sum_index==1
& && && && & re_index=2:n;
& && && &elseif sum_index==n
& && && && & re_index=1:n-1;
& && && &else
& && && && & re_index=;
& && && & end
使用 x= c=6, 计算=t1(x,c),取得的结果是 105, 以及 1-104的输出。
单步跟踪正常。 if L==1
& && && && & sum_index=i
& && && &else
sum_index=sum(Tn(1:L-1))+i
& && && &end
这一句,是对你的Tn的加和,这个值会不会超过n使得
if sum_index==1
& && && && & re_index=2:n
& && && &elseif sum_index==n
& && && && & re_index=1:n-1
& && && &else
& && && && & re_index=
& && && & end
前两个判断返回值为0,进入else
但是sum_index+1:n这个矩阵是个空矩阵,因为前面比后面大。
从程序上我只能理解到这个位置
意见作为参考,本人不是学语言的。 好像在 if 和 循环语句块中出现向量赋值语句时,
该向量必须要先在语句块之前(也在语句块的外面)初始化为其分配空间 : Originally posted by duotojh at
好像在 if 和 循环语句块中出现向量赋值语句时,
该向量必须要先在语句块之前(也在语句块的外面)初始化为其分配空间 如果是标量则不需先初始化 : Originally posted by duotojh at
如果是标量则不需先初始化... 谢谢! re_index=;
& & for i=1:Tn(L)& &&&
& && &&&if L==1
& && && && &sum_index=i;
& && &&&else
& && && && &sum_index=sum(Tn(1:L-1))+i;
& && &&&end
& && &&&y=D(:,sum_index);
& && &&&if sum_index==1
& && && && &re_index=2:n;
& && &&&elseif sum_index==n
& && && && &re_index=1:n-1;
& && &&&else
& && && && &re_index=;
& && &&&end
自己的测试数据(simulated):
& & Tn(L)=L*2;
for i=1:100
& & D(1:1000,i)=i;
测试通过,祝好运! 分数阶网络的同步程序?和整数阶的区别是不是在节点的求解,可以解分数阶系统,但是不会穿插到分数阶网络中,那位高手,帮忙,谢谢!}

我要回帖

更多关于 大神帮忙ps 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信