C++复习资料

[二级C语言]上机题库、模拟软件、Visual C++ 6.0、复习资料 <br />http://hi.baidu.com/luofl1992/blog/item/ed81fb118542f8c1f7039e83.html<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /><br />二级C语言 复习资料下载   http://hi.baidu.com/jsj08/blog/item/eabd5b479752b9006b63e5aa.html<br />上机模拟软件下载<br />原文链接为h 阅读详情

第一章 C++语言概述

  1. Simula67是面向对象语言的鼻祖,最早提出对象的概念。
  2. 面向对象的相关概念:封装(封装体具有隐藏性,安全性,通过通道与外界连接),类(创建对象的样板),对象(传递信息是通过消息实现的),聚合,继承,多态性(重载--函数重载和运算符重载,动态联编)
  3. ?C++是面向对象的,而C是面向过程的,这个是不同的(书上说C++兼容C,也要支持面向过程的程序设计。)
  4. C++对C做了很多的改进:(1)增加了::,new,delete等运算符(2)允许重载(3)加入了引用符号&(4)对变量的说明更加灵活。Ref->P6
  5. 续行符(\)
  6. 先编译,再链接,最后执行。

第二章 数据类型和表达式

  1. 八进制以0为前缀,十六进制以0x或者0X为前缀。

2.2常量和变量

字符常量(用一对单撇号括起来的)。(转义序列表示法)

//转义序列表示法
//以\开头,后面跟上字符的ASCII值,反斜杠表示消除他后面字符的原有含义。 
#include<iostream>
using namespace std;
int main(void){
	char a,b;
	a='\x23';//十六进制表示法,"\xhh" 
	b='\046';//八进制表示法,"\hhh" 
	cout<<a<<"__"<<b<<endl;
	return 0;
} 

运行结果如下:

同时需要注意到:

//转义序列表示法
//以\开头,后面跟上字符的ASCII值,反斜杠表示消除他后面字符的原有含义。 
#include<iostream>
using namespace std;
int main(void){
	char a,b;
	a='\x23';//十六进制表示法,"\xhh" 
	b='4x';//八进制表示法,"\hhh" 
	cout<<a<<"__"<<b<<endl;
	return 0;
} 

当我把变量b中的元素换一下,结果就变成了下面这样:(我感觉是不是跟那个小尾表示法有点像?)


3.字符串常量。(用双撇号括起来的字符序列,又叫做串常量或者字符串)

//注意:字符串常量有连接,复制等功能。

字符串常量和字符常量的区别:

(1)字符串常量由一个一维数组存放,而字符常量是由一个字符型变量存放

(2)字符串常量以'\0'结尾,这个字符也占一个字节。但是字符常量就没有这个。

(3)字符常量具有加法和减法运算,但是字符串常量不具有这个运算。

#include<iostream>
using namespace std;
int main(void){
	char a,b;
	string m,n;
	cin>>a>>b;
	cout<<a+b<<"__"<<a-b<<endl;	
	return 0;
} 

运行结果如下:

2.3字符数组

将一个一维字符数组初始化为一个字符串时,可用如下简捷方式:

#include<iostream>
using namespace std;
int main(void){
	char s2[5]="abcd";//但是注意,这样是不正确的:char s3[5]="abcde" 
	string s5="efdg";//因为对于字符串而言,后面的'\0'是系统自动添加的。这种初始化时越界的 
	char s3[]="heuakj"; 
	cout<<s2<<"__"<<s5<<"__"<<s3<<endl;
	return 0;
} 

运行结果如下:

2.4指针

2.4.1指针

定义指针时要指出该指针的类型,即在指针前冠以*符号。

例子:

	int *pi;//定义一个指针变量,指向变量pi 
	float *pl;
	double *pc;
	int *pa[3];//定义一个指向一维指针数组的指针pa。  
	char (*pa)[3];//定义指向一维数组的指针,它所指向的是一个具有3个char类型元素的数组。 
	double (*pf)();//pf是一个指向函数的指针,该函数的返回值为double。 

指针的赋值:

1.任何一种类型的指针所赋的值都是内存地址值,只是不同类型指针的内存地址值的表示不尽相同。

2.C++语言规定,数组的地址值用数组名来表示,这是一个常量指针。这个常量指针的值是该数组首元素的地址值。

    如何理解常量指针:例如int a[10];a+2是合法的,但是a++是不合法的,因为a++就是a=a+1.这样a的值就改变了,显然不符合规则。

3.函数的地址值可以用该函数的名字来表示,一个指向函数的指针可以用该函数的函数名字来表示。

#include<iostream>
#include<cmath>
using namespace std;//函数的地址值用函数名字表示。 
int fun(int a,int b){
	return a+b;
}
int main(void){
	int (*pf)(int x,int y);//在这里定义一个指向函数的指针。 
	pf=fun;//把fun的值给了pf 
	cout<<pf(2,3); //有种换汤不换药的感觉。 
	return 0;
} 

运行结果如下:

4.指针作为一种特殊的变量,运算是很有限的一般而言,指针所允许的原运算有以下四种:

(1)赋值运算-->变量的地址值,数组名或者一个函数在内存中的入口地址值,指针赋给另一个指针

(2)指针可以加上或者减去一个整数值(其实就是指针的移动)

        例如:int a,*p;a=*(p+2);

  (3)两指针相减

int main(void){
	int a[6]={0,1,2,3,4,5},*p,*q;
	p=a;
	q=a+3;
	cout<<q-p; //两个指针相减就是地址值的相减,体现在元素上就是两指针之间的元素个数-1 
	return 0;
} 

运行结果如下:

理解如下:其中q-p是3,但是两个指针之间有4个元素。

  

(4)两指针可以比较。

2.4.2 指针和数组

(1)一维数组:

        例如int a[10];用下表表示法为a[i],用指针表示法为*(a+i)

(2)二维数组:int b[2][5]

(二维数组可以看作是一维数组,只是一维数组中的元素也还是一维数组。)

        下标表示法b[i][j];

        指针表示法:*(*(b+i)+j)

                                *(b[i]+j)

                                  *(b+i)[j] 

        

2.4.2.1 指针数组

定义:数组元素为指针的数组称为指针数组。(侧重点在数组。)

表示的话是这么表示:

int *pa[3]。

理解:把pa[3]当做了一种符号,可以理解为int *pa[3]==int *pb;这样理解的话就是声明了一个int类型的指针pb.而这个pb是被封装了的,里面是三个元素,都是指针。这样理解就明白了为啥int*pa[3]指的是声明了三个int类型的一维指针,pa是二维指针。

2.4.2.1.1字符指针

字符指针指的是指向字符串的指针。字符指针可用于字符串常量初始化和赋值,这个比字符数组存放字符串更加的方便,例如:

char *p="abcd",*q;
q="mnpq";
#include<iostream>
using namespace std;
int main(void){
	char *s[]={"char","long","int"};
	s[0]="double";
	*(s+1)="float";
	cout<<s[0]<<endl;
	cout<<*(s+1)<<endl;
	cout<<s[2]<<endl;
	cout<<*(*s+2)<<','<<*(s[2]+1)<<endl;
	return 0;
} 

运行结果如下:

2.4.2.2数组指针

定义:指向数组的指针,侧重点在于指针。

理解:int(*pa)[3],由于数组名也是一种指针,所以可以把(*pa)视为b,b是一级指针,b=*pa,即&b=pa,所以pa是指向b的,所以pa是二级指针。

指向一维数组的指针通常用一个二维数组的行地址,即二级指针的地址值给它赋值。

int a[2][3]={1,2,3,4,5,6};//声明并定义了一个二维数组
int (*pa)[3];//声明了指向一维数组的二维指针pa,该数组有三个元素。
pa=a+1;//a是二维指针,pa也是二维指针。

图解如下:

2.5引用

1.引用的概念

1)什么是引用

引用是某个对象或者变量的别名。引用不是变量,本身没有值,也不占内存空间。

引用的值就是被他引用的变量或者对象的值。引用的地址值就是被他引用的变量或者对象的地址值。引用的值将随被引用的变量或者对象的值改变而改变。引用的值的改变也将改变被引用的变量或者对象的值。

2)创建引用的格式如下:

<类型>&<引用名>=<初始值>

参考:c++中引用面试点7连问以及引用真的不分配内存吗 - CPP加油站的文章 - 知乎
https://zhuanlan.zhihu.com/p/384591552

2.6 联合(共用体)

格式:

union <联合名>//用尖括号是因为这个联合名可有可无。

{

        <联合成员说明>

}

union <联合名> <联合变量名>;

        共用体的特点在于所有成员共用一个地址,即共址。共用体的内存大小取决于共用体成员中最大的那个。(对于联合而言,是小尾表示法存储,可以参考网址:大端与小端,大尾与小尾,高尾端与低尾端,主机字节序与网络字节序 - stardsd - 博客园 (cnblogs.com))

        由于

#include<iostream>
using namespace std;
union change{
		char c[20];
		int a;
		int b;
	};
union change un;
int main(void){
	un.a=1;
	un.b=2;
	cout<<un.a<<','<<un.b;
	return 0;
} 

运行结果如下:(不明白)

小尾表示法::

#include<iostream>
using namespace std;
union change{
		char c[2];
		int a;
	};
union change un;
int main(void){
	un.a=16961;//对应的二进制码0100,0010,0100,0001 
	cout<<un.c[0]<<','<<un.c[1];//运用小尾表示法,尾就要放在低地址处 
	return 0;//c[0]存放0100,0001;c[1]存放0100,0010 
} 

运行结果如下:

第三章 预处理和语句

3.1 预处理功能

预处理命令实际上是编译命令,他不是语句,不要用分号结束。

5.1 类的定义

访问权限修饰符:公有的(public)、私有的(private)和保护的(protected);

公有部分:一些操作(即成员函数),是提供给用户的接口功能;

私有部分:一些数据成员,通常用来描述该类中的对象的属性;只有成员函数或者经过特殊说明的函数才可以引用它们。//指针是没有办法直接引用的。

注意事项:

①定义类时,只是定义了一种导出的数据类型,并不为类分配存储空间,所以,在定义类中的数据成员时(往往都是私有的),不能对其初始化。

②在C++语言中,结构体类型只是类的一个特例。结构体类型与类的唯一的区别在于:在类中,其成员的缺省的存取权限是私有的;而在结构体类型中,其成员的缺省的存取权限是公有的。

5.2 对象的定义

在定义类时,只是定义了一种数据类型,即说明程序中可能会出现该类型的数据,并不为类分配存储空间。只有在定义了属于类的变量后,系统才会为类的变量分配空间。对象是类的实例,定义对象之前,一定要先说明该对象的类。

C++期末考试复习资料四 习题三 一、填空题 1、如果类A继承了类B,则类A称为( )类,类B称为( )类。 2、在继承机制下,当对象消亡时,编译系统先执行( )的析构函数,然后才执行( )的析构函数。 3、继承发生在利用现有类派生新类时,其中( )称为基类,或( )类;( )称为派生类,或( )类。 4、在C++语言中,派生类继承了基类的全部数据成员和除( )之外的全部函数成员。 5、在公有继承关系下,派生类的对象可以访问基类中的( )成员,派生类的成员函数可以访问基类中 阅读详情

相关推荐

C++期末考试复习资料三

习题一 一、填空题 1、面向对象的程序设计有四大特点,它们是抽象、封装、( )、( )。 2、类中的成员使用特定的关键字指定不同的访问特性,其中( )成员是提供给外部的接口,在类中和类外可见。 3、protected成员的访问权限:派生类( )访问protected成员,派生类对象( )访问protected成员,本类的对象( )访问protected成员(填:能与不能)。 4、C++语言中类成员的访问权限包括private、( )和(

weixin_44203971的博客 2014

C++期末复习资料 备考

C++期末备考 1、在用class定义一个类时,数据成员和成员函数的默认访问权限是 private 2、内联函数关键字 inline 3、假定有如下定义:int *p;,为p动态分配内存且为该内存赋值为整数10的语句是_int *p=new int(10);_____。 4、含有纯虚函数的类名称是 抽象类 5、在二叉树中,如果一个节点没有后继节点,那么这种节点称为 叶子 节点。 6、int a, &ra=a;关于ra的描述中正确的是( C ) A ra是in

weixin_51808902的博客 883

C++软件开发校招复习资料总结-西电华为学长分享-资源提取码

C++软件开发校招复习资料总结-西电华为学长分享。非常全,0基础-》开发岗。

清风 242

二级C++考前总复习资料精要

C++是一种静态类型、编译式、通用的编程语言,由Bjarne Stroustrup在1980年代初期发明。它支持多种编程范式,包括过程化、面向对象和泛型编程。C++广泛应用于系统/应用软件开发、游戏开发、驱动程序、高性能服务器和客户端、嵌入式系统等领域。在C++中,指针和引用都用于间接访问对象,但它们之间存在明显的不同:指针是一个变量,其值为它所指向的对象的地址;可以重新指向另一个对象。引用是别名,一旦被初始化后不能改变为另一个对象的别名。

weixin_42613017的博客 963

广州大学C++课程复习资料集锦

C++是一种广泛使用的编程语言,它在系统编程领域占有重要的地位。它不仅支持过程化编程,还支持面向对象编程和泛型编程。本章将介绍C++的基础语法,为读者打下坚实的编程基础。类是面向对象编程中的基本构造块,它将数据和操作数据的方法捆绑在一起。C++中的类可以通过关键字class或struct来定义。类定义了一个抽象的数据类型,通过它可以创建对象的蓝图。成员函数(也称为方法)是定义在类内部的函数,它们可以操作类的数据成员。private:// 私有数据成员public:// 构造函数。

weixin_42509888的博客 723

osgearth2.10 demo功能介绍

osgearth-2.10 demo: 说明: 1、运行环境win7 x64 旗舰版,CPU i5-6400 8核,8G内存; 2、括号内是对应demo的测试参数(.earth); 3、配置OSG_FILE_PATH; 4、参数命令行可以查看各个demo需要的输入参数; 5、前缀说明:gui界面程序、cmd控制台程序、non功能未知; 6、程序后括号里的non表示不需要通过命令行输入参数; 示例: 1、gui:osgearth_3pv(simple.earth):相机与地球的投影关系,Range表示相机

rach09的专栏 2421

Win11笔记本BIOS设置避坑大全:Secure Boot、RST、UEFI引导,一次讲清

本文详细解析了Win11笔记本BIOS设置中的关键问题,包括Secure Boot、Intel RST和UEFI引导的配置方法,帮助用户避开双系统安装中的常见陷阱。特别针对不同品牌笔记本的BIOS界面差异,提供了实用的操作指南和优化建议,确保系统兼容性和启动效率。

weixin_29251131的博客 687

PIVlab软件入门:从GUI操作到2D2C粒子测速实战

本文详细介绍了PIVlab软件在2D2C粒子测速中的入门与实战应用。从GUI操作到环境搭建,再到图像预处理和核心参数设置,帮助用户快速掌握这一基于MATLAB的开源工具。通过实际案例和技巧分享,展示了PIVlab在流体力学实验中的高效性和实用性。

weixin_42547431的博客 227

[Spawn service failed. Exiting] ROS2运行turtlebot3_gazebo例程卡住_报错

[Spawn service failed. Exiting] ROS2运行turtlebot3_gazebo例程卡住_报错

Feizhai2的博客 4860

多智能体强化学习论文——SEAC(NIPS 2020)

存在的问题&研究动机&研究思路 在稀疏奖励的环境下,多智能体的exploration存在效率不足等问题。 在IAC的基础上尝试加入重要性采样,使得每次更新智能体iii的参数时,不再仅仅使用智能体iii的数据,而是使用所有智能体的数据进行智能体iii数据的更新。 对于原始的IAC算法是on-policy的,而SEAC则是off-poligy的。 创新点 在每个智能体iii的actoriactor_iactori​和criticicritic_icritici​的更新过程中,都加入了重要性

我的AI笔记 1206

从东南大学906被刷到调剂过程(内含个人感想)

介绍了自己在看到初试成绩,到后期复习以及调剂的全过程,当中也包含了自己的复试中的感想,希望大家理性看待。

Philo的博客 2854

金融科技风险管理实践之监管评级全解

内部审计是公司治理的四大基石之一。因此,建议银行以问题与结果为导向,推动科技风险分级分类管理,重点防范重大中断、重大事件,并进一步加强科技风险评估与监测,加强对重要管理流程、重要系统、网络等重点管控环节的评估监测,对于评估发现的问题,及时完善管理手段,举一反三解决问题,提高风险管理的有效性。投入更多审计资源,加大对重点机构、薄弱环节、重要领域的审计力度,如:加强对境外机构的审计,加强网络安全、数据安全、业务连续性等高风险领域审计,加强数字化转型过程中的风险审计,以高水平安全,为数字金融高质量发展保驾护航。

银行信息系统应用架构详解 450

2026 拉勾网:JA4+指纹绕过 + sign逆向 + 动态城市参数,月采集10万+数据实战

2026年拉勾网反爬技术全面升级,采用JA4+ TLS指纹识别、动态sign签名等多维度防护体系。本文提供工业级爬虫解决方案,通过curl_cffi模拟浏览器指纹、逆向sign加密算法、动态生成城市参数三大核心技术,实现高效稳定的数据采集。系统采用分层架构设计,包含任务调度、签名生成、多线程引擎等模块,单月可获取10万+条招聘数据。重点解析了JA4+指纹识别原理、传统方法的局限性,以及通过HMAC-SHA256算法逆向sign参数的完整过程。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2393

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 操作系统:为什么有的进程都阻塞了还可以进行I/O操作?
下一篇: 在操作系统中,分配I/O设备为什么是先分配设备,再是控制器,再是通道,先通道,控制器最后设备可以吗?
printfLILEI
博客等级 码龄4年 66粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值