你可以先去【绘学霸】网站找“影视特效技术”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=312&zdhhr-11y04r-1608726946110292307 。
想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。
自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.cgwang.com/course/ystxcoursemobilecheck/?zdhhr-11y04r-1608726946110292307 。
在“影视特效技术”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。
大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html。
意思分别是:
名词:n.(noun)
代词:pron.(pronoun)
介词:prep.(preposition)
动词:v.(verb)
形容词:adj.(adjective)
副词:adv.(adverb)
连词:conj.(conjunction)
冠词:art.(article)
1、形容词修饰名词,不可修饰动词。
2、副词修饰形容词、动词、形容词的比较级和最高级,表加深程度、或置于句子开头表语气。
3、名词不能修饰任何词,它只能被其他词修饰。
4、系动词不是形容词,不能用来修饰词,它们就是动词,例如be,get,have,感官动词等。
5、介词用来连接地点、时间等或用来构成一个短语。
6、冠词用来修饰名词,但the也可用来作特指。
7、动词不能用来修饰其他词,它们只能被副词修饰。
8、连词是用来连接两个有关联的成份,这两个成份必须是同一类型,即句子连句子、短语连短语等。
9、数词用来修饰可数名词或部分不可数名词。
10、代词用来代之前面某样提及过的东西。
11、感叹词,顾名思义用来表示个人情感。
12、助动词没有实际的意义,只是用来加深程度,如用在强调句、倒装句等。
扩展资料
名词(Noun,简称n.),是词类的一种,属于实词,名词表示人、事物、地点或抽象概念的名称,名词同时也分为专有名词和普通名词。
代词是代替名词或一句话的一种词类。大多数代词具有名词和形容词的功能。英语中的代词,按其意义、特征及在句中的作用分为:人称代词、物主代词、指示代词、反身代词、相互代词、疑问代词、关系代词、连接代词、不定代词和替代词十种。
介词(preposition 简写prep.)又称作前置词,表示名词、代词等与句中其他词的关系,在句中不能单独作句子成分。介词后面一般有名词、代词或相当于名词的其他词类、短语或从句作它的宾语,表示与其他成分的关系。
动词(Verb)一般就是用来表示动作或状态的词汇。在英语中,动词按作用和功能主要分为两大类,一类是谓语动词,另一类是非谓语动词。
形容词(Adjective),很多语言中均有的主要词类中的一种。形容词主要用来描写或修饰名词或代词,表示人或事物的性质、 状态、特征或属性,常用作定语,也可作表语、补语或状语。
副词(Adverb 简称adv.)是指在句子中表示行为或状态特征的词,用以修饰动词、形容词、其他副词或全句,表示时间、地点、程度、方式等概念。副词可分为:时间副词、频率副词、地点副词、方式副词、程度副词、疑问副词、连接副词、关系副词、表顺序的副词。
连词(conj conjunction)是一种虚词, 它不能独立担任句子成分而只起连接词与词,短语与短语以及句与句的作用。连词主要可分为4类:并列连词.转折连词.选择连词和因果连词。连词也可以分为2类:并列连词和从属连词。
冠词(Article)是一种虚词,在句子中不重读,本身不能独立使用,只能放在名词前帮助说明名词所指的人或事物,它是英语词性中最小的一类,只有三个,一种是不定冠词(Indefinite Article),一种是定冠词(Definite Article)。冠词简称“art.”冠词有不定冠词、 定冠词、 零冠词。
Prim算法
Prim算法用于求无向图的最小生成树。
设图G =(V,E),其生成树的顶点集合为U。
①、把v0放入U。
②、在所有u∈U,v∈V-U的边(u,v)∈E中找一条最小权值的边,加入生成树。
③、把②找到的边的v加入U集合。如果U集合已有n个元素,则结束,否则继续执行②。
其算法的时间复杂度为O(n^2)。
Prim算法实现:
(1)集合:设置一个数组set[i](i=0,1,..,n-1),初始值为 0,代表对应顶点不在集合中(注意:顶点号与下标号差1)
(2)图用邻接阵表示,路径不通用无穷大表示,在计算机中可用一个大整数代替。
参考程序
/* Prim.c
Copyright (c) 2002, 2006 by ctu_85。
All Rights Reserved.。
*/
/* The impact of the situation of articulation point exists can be omitted in Prim algorithm but not in Kruskal algorithm */。
#include "stdio.h"。
#define maxver 10。
#define maxright 100。
int main()
int G[maxver][maxver],in[maxver]=,path[maxver][2];。
int i,j,k,min=maxright;。
int v1,v2,num,temp,status=0,start=0;。
restart:
printf("Please enter the number of vertex(s) in the graph:\n");。
scanf("%d",&num);。
if(num>maxver||num<0)。
printf("Error!Please reinput!\n");。
goto restart;
for(j=0;j<num;j++)。
for(k=0;k<num;k++)。
if(j==k)
G[j][k]=maxright;。
else
if(j<k)
re:
printf("Please input the right between vertex %d and vertex %d,if no edge exists please input -1:\n",j+1,k+1);。
scanf("%d",&temp);。
if(temp>=maxright||temp<-1)。
printf("Invalid input!\n");。
goto re;
if(temp==-1)
temp=maxright;
G[j][k]=G[k][j]=temp;。
for(j=0;j<num;j++)。
status=0;
for(k=0;k<num;k++)。
if(G[j][k]<maxright)。
status=1;
break;
if(status==0)
break;
do
printf("Please enter the vertex where Prim algorithm starts:");。
scanf("%d",&start);。
}while(start<0||start>num);。
in[start-1]=1;
for(i=0;i<num-1&&status;i++)。
for(j=0;j<num;j++)。
for(k=0;k<num;k++)。
if(G[j][k]<min&&in[j]&&(!in[k]))。
v1=j;
v2=k;
min=G[j][k];
if(!in[v2])
path[i][0]=v1;
path[i][1]=v2;
in[v1]=1;
in[v2]=1;
min=maxright;
if(!status)
printf("We cannot deal with it because the graph is not connected!\n");。
else
for(i=0;i<num-1;i++)。
printf("Path %d:vertex %d to vertex %d\n",i+1,path[i][0]+1,path[i][1]+1);。
return 1;
}
Prim算法。
设图G =(V,E),其生成树的顶点集合为U。
①、把v0放入U。
②、在所有u∈U,v∈V-U的边(u,v)∈E中找一条最小权值的边,加入生成树。
③、把②找到的边的v加入U集合。如果U集合已有n个元素,则结束,否则继续执行②。
其算法的时间复杂度为O(n^2)。
参考程序
//Prim 算法 读入顶点数(n)、边数(m),边的起始点和权值 用邻接矩阵储存。
//例如
//7 12 (7个顶点12条边)。
//1 2 2
//1 4 1
//1 3 4
//2 4 3
//2 5 10
//3 4 2
//4 5 7
//3 6 5
//4 6 8
//4 7 4
//5 7 6
//6 7 1
#include <stdio.h>。
#include <string.h>。
int main()
int m , n;
int a[201][201] , mark[201] , pre[201] , dist[201];。
int s , t , w;
int i , j , k , min , tot;。
freopen("Prim.txt" , "r" , stdin);。
//读入数据
memset(a , 0 , sizeof(a));。
scanf("%d %d" , &n , &m);。
for (i = 0; i < m; i ++)。
scanf("%d %d %d" , &s , &t , &w);。
a[s][t] = w; a[t][s] = w;。
//赋初值
memset(mark , 0 , sizeof(mark));。
memset(pre , 0 , sizeof(pre));。
memset(dist , 9999 , sizeof(dist));。
dist[1] = 0;
//Prim
for (i = 1; i <= n; i ++)。
min = 9999; k = 0;。
for (j = 1; j <= n; j ++) 。
if ((mark[j] == 0) && (dist[j] < min)) {min = dist[j]; k = j;}。
if (k == 0) break;。
mark[k] = 1;
for (j = 1; j <= n; j ++)。
if ((mark[j] == 0) && (a[k][j] < dist[j]) && (a[k][j] > 0))。
dist[j] = a[k][j];。
pre[j] = k;
tot = 0;
for (i = 1; i <= n; i ++) tot += dist[i];。
printf("%d\n" , tot);。
return 0;
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环语句是由循环体及循环的终止条件两部分组成的。
[编辑本段]Basic中的循环语句。
在 VBScript 中可使用下列循环语句:
Do...Loop: 当(或直到)条件为 True 时循环。
While...Wend: 当条件为 True 时循环。
For...Next: 指定循环次数,使用计数器重复运行语句。
For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。
使用 Do 循环
可以使用 Do...Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。
当条件为 True 时重复执行语句。
While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果 myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为 False。
Sub ChkFirstWhile()。
Dim counter, myNum。
counter = 0
myNum = 20
Do While myNum > 10。
myNum = myNum - 1。
counter = counter + 1。
Loop
MsgBox 循环重复了 & counter & 次。
End Sub
Sub ChkLastWhile()。
Dim counter, myNum。
counter = 0
myNum = 9
Do
myNum = myNum - 1。
counter = counter + 1。
Loop While myNum > 10。
MsgBox 循环重复了 & counter & 次。
End Sub
重复执行语句直到条件变为 True。
Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastUntil 示例)。只要条件为 False,就会进行循环。
Sub ChkFirstUntil()。
Dim counter, myNum。
counter = 0
myNum = 20
Do Until myNum = 10。
myNum = myNum - 1。
counter = counter + 1。
Loop
MsgBox 循环重复了 & counter & 次。
End Sub
Sub ChkLastUntil()。
Dim counter, myNum。
counter = 0
myNum = 1
Do
myNum = myNum + 1。
counter = counter + 1。
Loop Until myNum = 10。
MsgBox 循环重复了 & counter & 次。
End Sub
退出循环
Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在 If...Then...Else 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False,循环将照常运行。
在下面的示例中,myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件,防止出现死循环。
Sub ExitExample()。
Dim counter, myNum。
counter = 0
myNum = 9
Do Until myNum = 10。
myNum = myNum - 1。
counter = counter + 1。
If myNum < 10 Then Exit Do。
Loop
MsgBox 循环重复了 & counter & 次。
End Sub
使用 While...Wend。
While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少灵活性,所以建议最好使用 Do...Loop 语句。
使用 For...Next。
For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。
例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。
Sub DoMyProc50Times()。
Dim x
For x = 1 To 50。
MyProc
Next
End Sub
关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。
Sub TwosTotal()。
Dim j, total
For j = 2 To 10 Step 2。
total = total + j。
Next
MsgBox 总和为 & total & 。
End Sub
要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。
Sub NewTotal()。
Dim myNum, total。
For myNum = 16 To 2 Step -2。
total = total + myNum。
Next
MsgBox 总和为 & total & 。
End Sub
Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。
使用 For Each...Next。
For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。
在以下示例中,Dictionary 对象的内容用于将文本分别放置在多个文本框中:
<HTML>
<HEAD><TITLE>窗体与元素</TITLE></HEAD>。
<SCRIPT LANGUAGE=VBScript>。
<!--
Sub cmdChange_onClick。
Dim d '创建一个变量。
Set d = CreateObject(Scripting.Dictionary)。
d.Add 0, Athens '添加键和项目。
d.Add 1, Belgrade。
d.Add 2, Cairo。
For Each I in d。
Document.frmForm.Elements(I).Value = D.Item(I)。
Next
End Sub
-->
</SCRIPT>。
<BODY>
<CENTER>。
<FORM NAME=frmForm>。
<Input Type = Text>。
<Input Type = Text>。
<Input Type = Text>。
<Input Type = Text>。
<Input Type = Button NAME=cmdChange VALUE=单击此处>。
</FORM>。
</CENTER>。
</BODY>。
</HTML>。
Matlab中ruler2num函数的使⽤。
⽬录
ruler2num函数是将数据从特定的标尺转换为数值数据。
语法
num = ruler2num(data,ruler)。
data - 输⼊数组
输⼊数组,指定为标量、向量或矩阵。如果 data 已经是数值,则输出 num 等于输⼊ data。
ruler - 标尺
与输⼊数据相关联的标尺,指定为 DatetimeRuler、DurationRuler、NumericRuler 或 GeographicRuler 对象。使⽤ Axes 对象的 XAxis、YAxis 或 ZAxis 属性指定标尺对象。例如:
ax = gca;
num = ruler2num(data,ax.XAxis)。
如果指定 NumericRuler 对象,⽽输⼊ data 不是数值,则输出 num 由以下公式决定:
num = full(double(data))。
如果指定 GeographicRuler 对象,则输出 num 等于输⼊ data。
说明
num = ruler2num(data,ruler)将 data 中的值转换为数值。ruler 输⼊表⽰与 data 关联的标尺,它决定如何将值映射到对应的数值。输出 num 的⼤⼩与输⼊ data 相同。
⽰例
将⽇期值转换为等效的数值
将⽇期值转换为等效的数值,以便设置⽂本对象的 Position 属性。创建 x 轴为⽇期值的绘图。为第四个数据点添加⽂本说明,并返回⽂本对象。
t = datetime(2015,1,1:10);。
y = [.2 .3 .5 .2 .8 .2 .3 .1 .3 .4];。
plot(t,y,'-o')
txt = text(t(4),y(4),'My text');。
通过设置⽂本对象的 Position 属性,将⽂本的位置更改到第六个数据点。由于 Position 属性只接受数值,因此需要将第六个数据点的⽇期时间值转换为等效的数值。
t = datetime(2015,1,1:10);。
y = [.2 .3 .5 .2 .8 .2 .3 .1 .3 .4];。
plot(t,y,'-o')
txt = text(t(4),y(4),'My text');。
ax = gca;
x6 = ruler2num(t(6),ax.XAxis);。
txt.Position = [x6 y(6)];。
¥
5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容。
立即获取
Matlab中ruler2num函数的使用。
Matlab中ruler2num函数的使⽤。
⽬录
ruler2num函数是将数据从特定的标尺转换为数值数据。
语法
num = ruler2num(data,ruler)。
data - 输⼊数组
输⼊数组,指定为标量、向量或矩阵。如果 data 已经是数值,则输出 num 等于输⼊ data。
第 1 页
ruler - 标尺
与输⼊数据相关联的标尺,指定为 DatetimeRuler、DurationRuler、NumericRuler 或 GeographicRuler 对象。使⽤ Axes 对象的 XAxis、YAxis 或 ZAxis 属性指定标尺对象。例如:
ax = gca;
num = ruler2num(data,ax.XAxis)。
如果指定 NumericRuler 对象,⽽输⼊ data 不是数值,则输出 num 由以下公式决定:
第 2 页
num = full(double(data))。
如果指定 GeographicRuler 对象,则输出 num 等于输⼊ data。
说明
num = ruler2num(data,ruler)将 data 中的值转换为数值。ruler 输⼊表⽰与 data 关联的标尺,它决定如何将值映射到对应的数值。输出 num 的⼤⼩与输⼊ data 相同。
⽰例
将⽇期值转换为等效的数值
第 3 页
将⽇期值转换为等效的数值,以便设置⽂本对象的 Position 属性。创建 x 轴为⽇期值的绘图。为第四个数据点添加⽂本说明,并返回⽂本对象。
t = datetime(2015,1,1:10);。
y = [.2 .3 .5 .2 .8 .2 .3 .1 .3 .4];。
plot(t,y,'-o')
txt = text(t(4),y(4),'My text');。
第 4 页
通过设置⽂本对象的 Position 属性,将⽂本的位置更改到第六个数据点。由于 Position 属性只接受数值,因此需要将第六个数据点的⽇期时间值转换为等效的数值。
t = datetime(2015,1,1:10);。
y = [.2 .3 .5 .2 .8 .2 .3 .1 .3 .4];。
plot(t,y,'-o')
txt = text(t(4),y(4),'My text');。
ax = gca;
x6 = ruler2num(t(6),ax.XAxis);。