matlab中语句 data(1:500,:)=c1(1:500,:)是什么意思,麻烦大虾指点下 matlab使用问题

\u8c01\u77e5\u9053\u8fd9\u4e2a\u9519\u8bef\u600e\u4e48\u6539\u554a\uff1f\u8bf7\u6559matlab\u5927\u795e

c1\u548cdata\u7684\u5217\u6570\u76f8\u540c\u5417\uff1f
\u5982\u679c\u4e0d\u540c\u6539\u6210
\u3000\u3000data(1:500,1:size(c1))=c1(1:500,:);
\u8bd5\u8bd5\u3002

%% \u6e05\u7a7a\u73af\u5883\u53d8\u91cf
clc
clear

%% \u8bad\u7ec3\u6570\u636e\u9884\u6d4b\u6570\u636e\u63d0\u53d6\u53ca\u5f52\u4e00\u5316

%\u4e0b\u8f7d\u56db\u7c7b\u8bed\u97f3\u4fe1\u53f7
load data1 c1
load data2 c2
load data3 c3
load data4 c4

%\u56db\u4e2a\u7279\u5f81\u4fe1\u53f7\u77e9\u9635\u5408\u6210\u4e00\u4e2a\u77e9\u9635
data(1:500,:)=c1(1:500,:);
data(501:1000,:)=c2(1:500,:);
data(1001:1500,:)=c3(1:500,:);
data(1501:2000,:)=c4(1:500,:);

%\u4ece1\u52302000\u95f4\u968f\u673a\u6392\u5e8f
k=rand(1,2000);
[m,n]=sort(k);

%\u8f93\u5165\u8f93\u51fa\u6570\u636e
input=data(:,2:25);
output1 =data(:,1);

%\u628a\u8f93\u51fa\u4ece1\u7ef4\u53d8\u62104\u7ef4
for i=1:2000
switch output1(i)
case 1
output(i,:)=[1 0 0 0];
case 2
output(i,:)=[0 1 0 0];
case 3
output(i,:)=[0 0 1 0];
case 4
output(i,:)=[0 0 0 1];
end
end

%\u968f\u673a\u63d0\u53d61500\u4e2a\u6837\u672c\u4e3a\u8bad\u7ec3\u6837\u672c\uff0c500\u4e2a\u6837\u672c\u4e3a\u9884\u6d4b\u6837\u672c
input_train=input(n(1:1500),:)';
output_train=output(n(1:1500),:)';
input_test=input(n(1501:2000),:)';
output_test=output(n(1501:2000),:)';

%\u8f93\u5165\u6570\u636e\u5f52\u4e00\u5316
[inputn,inputps]=mapminmax(input_train);

%% \u7f51\u7edc\u7ed3\u6784\u521d\u59cb\u5316
innum=24;
midnum=25;
outnum=4;


%\u6743\u503c\u521d\u59cb\u5316
w1=rands(midnum,innum);
b1=rands(midnum,1);
w2=rands(midnum,outnum);
b2=rands(outnum,1);

w2_1=w2;w2_2=w2_1;
w1_1=w1;w1_2=w1_1;
b1_1=b1;b1_2=b1_1;
b2_1=b2;b2_2=b2_1;

%\u5b66\u4e60\u7387
xite=0.1
alfa=0.01;

%% \u7f51\u7edc\u8bad\u7ec3
for ii=1:10
E(ii)=0;
for i=1:1:1500
%% \u7f51\u7edc\u9884\u6d4b\u8f93\u51fa
x=inputn(:,i);
% \u9690\u542b\u5c42\u8f93\u51fa
for j=1:1:midnum
I(j)=inputn(:,i)'*w1(j,:)'+b1(j);
Iout(j)=1/(1+exp(-I(j)));
end
% \u8f93\u51fa\u5c42\u8f93\u51fa
yn=w2'*Iout'+b2;

%% \u6743\u503c\u9600\u503c\u4fee\u6b63
%\u8ba1\u7b97\u8bef\u5dee
e=output_train(:,i)-yn;
E(ii)=E(ii)+sum(abs(e));

%\u8ba1\u7b97\u6743\u503c\u53d8\u5316\u7387
dw2=e*Iout;
db2=e';

for j=1:1:midnum
S=1/(1+exp(-I(j)));
FI(j)=S*(1-S);
end
for k=1:1:innum
for j=1:1:midnum
dw1(k,j)=FI(j)*x(k)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));
db1(j)=FI(j)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));
end
end

w1=w1_1+xite*dw1';
b1=b1_1+xite*db1';
w2=w2_1+xite*dw2';
b2=b2_1+xite*db2';

w1_2=w1_1;w1_1=w1;
w2_2=w2_1;w2_1=w2;
b1_2=b1_1;b1_1=b1;
b2_2=b2_1;b2_1=b2;
end
end


%% \u8bed\u97f3\u7279\u5f81\u4fe1\u53f7\u5206\u7c7b
inputn_test=mapminmax('apply',input_test,inputps);

for ii=1:1
for i=1:500%1500
%\u9690\u542b\u5c42\u8f93\u51fa
for j=1:1:midnum
I(j)=inputn_test(:,i)'*w1(j,:)'+b1(j);
Iout(j)=1/(1+exp(-I(j)));
end

fore(:,i)=w2'*Iout'+b2;
end
end



%% \u7ed3\u679c\u5206\u6790
%\u6839\u636e\u7f51\u7edc\u8f93\u51fa\u627e\u51fa\u6570\u636e\u5c5e\u4e8e\u54ea\u7c7b
for i=1:500
output_fore(i)=find(fore(:,i)==max(fore(:,i)));
end

%BP\u7f51\u7edc\u9884\u6d4b\u8bef\u5dee
error=output_fore-output1(n(1501:2000))';



%\u753b\u51fa\u9884\u6d4b\u8bed\u97f3\u79cd\u7c7b\u548c\u5b9e\u9645\u8bed\u97f3\u79cd\u7c7b\u7684\u5206\u7c7b\u56fe
figure(1)
plot(output_fore,'r')
hold on
plot(output1(n(1501:2000))','b')
legend('\u9884\u6d4b\u8bed\u97f3\u7c7b\u522b','\u5b9e\u9645\u8bed\u97f3\u7c7b\u522b')

%\u753b\u51fa\u8bef\u5dee\u56fe
figure(2)
plot(error)
title('BP\u7f51\u7edc\u5206\u7c7b\u8bef\u5dee','fontsize',12)
xlabel('\u8bed\u97f3\u4fe1\u53f7','fontsize',12)
ylabel('\u5206\u7c7b\u8bef\u5dee','fontsize',12)

%print -dtiff -r600 1-4

k=zeros(1,4);
%\u627e\u51fa\u5224\u65ad\u9519\u8bef\u7684\u5206\u7c7b\u5c5e\u4e8e\u54ea\u4e00\u7c7b
for i=1:500
if error(i)~=0
[b,c]=max(output_test(:,i));
switch c
case 1
k(1)=k(1)+1;
case 2
k(2)=k(2)+1;
case 3
k(3)=k(3)+1;
case 4
k(4)=k(4)+1;
end
end
end

%\u627e\u51fa\u6bcf\u7c7b\u7684\u4e2a\u4f53\u548c
kk=zeros(1,4);
for i=1:500
[b,c]=max(output_test(:,i));
switch c
case 1
kk(1)=kk(1)+1;
case 2
kk(2)=kk(2)+1;
case 3
kk(3)=kk(3)+1;
case 4
kk(4)=kk(4)+1;
end
end

%\u6b63\u786e\u7387
rightridio=(kk-k)./kk

就是将c1的1到500行,所有列的元素赋值给data的1到500行,所有列:
clear all;clc;
c1=rand(501,2);
data=zeros(502,2);
data(1:500,:)=c1(1:500,:);

也不是很懂,不过帮你搜了一下,看能不能帮上忙,他说是将特征信号矩阵合成一个矩阵http://www.ilovematlab.cn/book/neural/chapter1.html

表示取1到500行里的所有元素

扩展阅读:importdata matlab ... matlab中data导入进gui ... matlab入门 data函数 ... matlab 调用数据到data ... matlab中data函数怎么用 ... matlab中data调用参数 ... matlab在线运行的网站 ... matlab在线网页版 ... matlab中isreal函数 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网