018 数组和矩阵的操作-数组运算、保存载入、矩阵运算、点运算、指数、开方乘方

1. 数组的运算

数组运算是指数组对应元素之间的运算,也称点运算

1.1 数值运算

  • 取随机数

利用取整和求余函数,可得到整数或精确到小数点后的第几位。

%生成随机数
x32=100-round(20*rand(1,1))%产生[-100 100 ]之间的随机整数

x32=100-round(20*rand(1,1))/100 %产生[-100 100 ]之间的随机数,精确到0.01

1.2 向量的点积叉积混合积

1.2.1 点积

向量的点积是指两个向量在其中某一个向量方向上的投影的乘积,通常可以用来引申定义向量的模

点积在数学中,又称数量积(dot product; scalar product),是指接受在实数R上的两个向量并返回一个实数值标量的二元运算。它是欧几里得空间的标准内积。 [1]

两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的点积定义为:

a·b=a1b1+a2b2+……+anbn

使用矩阵乘法并把(纵列)向量当作n×1 矩阵,点积还可以写为:

a·b=(a^T)*b,这里的a^T指示矩阵a的转置。

%点积计算
%dot()
dot(a, b)返回向量a和b的数量点积。a和b必须同维。当a和b都为列向量时,dot(a, b)同于a.*b。
dot(a, b, dim)返回向量a和b在维数为dim的点积
1.2.2 叉积

在高等数学中,向量的叉积表示过两相交向量交点的且垂直于两向量所在平面的向量。在MATLAB中,向量的叉积由cross函数来实现。

c=cross(a, b)返回向量a和b的叉积向量,即c=a×b。a和b必须为三维向量。

c=cross(a, b)返回向量a和b的前3位的叉积。

c=cross(a, b, dim)表示当向量a和b为n维数组时,返回a和b的dim维向量的叉积。a和b必须有相同的维数,且size(a, dim)和size(a, dim)必须为3。

c=cross(a,b)
1.2.3 混合积

dot()函数和cross()函数混用就行,顺序不能错

2.数组的保存和载入

MATLAB中提供了内置的把变量保存在文件中的方法,最简单易用的是将数组变量保存为二进制的.mat文件。用户可以通过save命令将工作区中指定的变量存储在.mat文件中。

  • save

save <filename> <var1> <var2>....

把变量存到filename.mat文件中

  • load

load <filename> <var1> <var2>....

把filename.mat中的变量加载到工作区

3.矩阵运算

3.1 加减

条件:
矩阵同型或者其中一个是标量

3.2 乘积

  1. 使用*运算符
  2. 其次,矩阵满足矩阵维数的条件:如果矩阵A是一个m×p矩阵,矩阵B是p×n矩阵,它们可以相乘产生m×n矩阵

在MATLAB里,单引号表示复共轭转置,一个点加单引号“.′”表示普通转置

3.3 矩阵除法

  • \”运算符号表示两个矩阵的左除,
  • “/”表示两个矩阵的右除

A\B即由Gauss消去法来获得线性方程AX=B的解X,即X=A-1B。如果矩阵不是方阵,也可以求出A\B,这时将使用最小二乘法来求取AX=B中的矩阵X。

X=B/A是X*A=B的解,对于非奇异方阵A, B/A等效为BA-1。

  • 左除
X=A\B就是A*X=B的解
  • 右除
X=B/A就是X*A=B的解
oxFxA.png

4.点运算

点运算符有.*、./、.\、.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同

5.矩阵的指数和对数运算

MATLAB提供了两个专门的函数expm和logm来实现矩阵的指数运算和对数运算。

6.矩阵的乘方运算和开方运算

MATLAB中矩阵的乘方可以由符号“^”实现,而矩阵的开方则由sqrtm函数实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
所有的整数类型以二进制数字位的变化及其宽度来表示。例如,byte 型值42的二进制代码是00101010 ,其中每个位置在此代表2的次方,在最右边的位以20开始。向左下一个位置将是21,或2,依次向左是22,或4,然后是8,16,32等等,依此类推。因此42在其位置1,3,5的值为1(从右边以0开始数);这样42是21+23+25的和,也即是2+8+32 。 所有的整数类型(除了char 类型之外)都是有符号的整数。这意味着他们既能表示正数,又能表示负数。Java 使用大家知道的2的补码(two's complement )这种编码来表示负数,也就是通过将与其对应的正数的二进制代码取反(即将1变成0,将0变成1),然后对其结果加1。例如,-42就是通过将42的二进制代码的各个位取反,即对00101010 取反得到11010101 ,然后再加1,得到11010110 ,即-42 。要对一个负数解码,首先对其所有的位取反,然后加1。例如-42,或11010110 取反后为00101001 ,或41,然后加1,这样就得到了42。 如果考虑到零的交叉(zero crossing )问题,你就容易理解Java (以及其他绝大多数语言)这样用2的补码的原因。假定byte 类型的值零用00000000 代表。它的补码是仅仅将它的每一位取反,即生成11111111 ,它代表负零。但问题是负零在整数数学中是无效的。为了解决负零的问题,在使用2的补码代表负数的值时,对其值加1。即负零11111111 加1后为100000000 。但这样使1位太靠左而不适合返回到byte 类型的值,因此人们规定,-0和0的表示方法一样,-1的解码为11111111 。尽管我们在这个例子使用了byte 类型的值,但同样的基本的原则也适用于所有Java 的整数类型。 因为Java 使用2的补码来存储负数,并且因为Java 中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的结果。例如,不管你如何打算,Java 用高位来代表负数。为避免这个讨厌的意外,请记住不管高位的顺序如何,它决定一个整数的符号。 二 位逻辑运算符 位逻辑运算符有“与”(AND)、“或”(OR)、“异或(XOR )”、“非(NOT)”,分别用“&”、“|”、“^”、“~”表示,4-3 表显示了每个位逻辑运算的结果。在继续讨论之前,请记住位运算符应用于每个运算数内的每个单独的位。 表4-3 位逻辑运算符的结果 A 0 1 0 1 B 0 0 1 1 A | B 0 1 1 1 A & B 0 0 0 1 A ^ B 0 1 1 0 ~A 1 0 1 0 按位非(NOT) 按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。例如,数字42,它的二进制代码为: 00101010 经过按位非运算成为 11010101 按位与(AND) 按位与运算符“&”,如果两个运算数都是1,则结果为1。其他情况下,结果均为零。看下面的例子: 00101010 42 &00001111 15 00001010 10 按位或(OR) 按位或运算符“|”,任何一个运算数为1,则结果为1。如下面的例子所示: 00101010 42 | 00001111 15 00101111 47 按位异或(XOR) 按位异或运算符“^”,只有在两个比较的位不同时其结果是 1。否则,结果是零。下面的例子显示了“^”运算符的效果。这个例子也表明了XOR 运算符的一个有用的属性。注意第二个运算数有数字1的位,42对应二进制代码的对应位是如何被转换的。第二个运算数有数字0的位,第一个运算数对应位的数字不变。当对某些类型进行位运算时,你将会看到这个属性的用处。 00101010 42 ^ 00001111 15 00100101 37 位逻辑运算符的应用 下面的例子说明了位逻辑运算符: // Demonstrate the bitwise logical operators. class BitLogic { public static void main(String args[]) { String binary[] = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" }; int a = 3; // 0 + 2 + 1 or 0011 in binary int b = 6; // 4 + 2 + 0 or 0110 in binary int c = a | b; int d = a & b; int e = a ^ b; int f = (~a & b) | (a & ~b); int g = ~a & 0x0f; System.out.println(" a = " + binary[a]); System.out.println(" b = " + binary[b]); System.out.println(" a|b = " + binary[c]); System.out.println(" a&b = " + binary[d]); System.out.println(" a^b = " + binary[e]); System.out.println("~a&b|a&~b = " + binary[f]); System.out.println(" ~a = " + binary[g]); } } 在本例中,变量a与b对应位的组合代表了二进制数所有的 4 种组合模式:0-0,0-1,1-0 ,和1-1 。“|”运算符和“&”运算符分别对变量a与b各个对应位的运算得到了变量c和变量d的值。对变量e和f的赋值说明了“^”运算符的功能。字符串数组binary 代表了0到15 对应的二进制的值。在本例中,数组各元素的排列顺序显示了变量对应值的二进制代码。数组之所以这样构造是因为变量的值n对应的二进制代码可以被正确的存储在数组对应元素binary[n] 中。例如变量a的值为3,则它的二进制代码对应地存储在数组元素binary[3] 中。~a的值与数字0x0f (对应二进制为0000 1111 )进行按位与运算的目的是减小~a的值,保证变量g的结果小于16。因此该程序的运行结果可以用数组binary 对应的元素来表示。该程序的输出如下: a = 0011 b = 0110 a|b = 0111 a&b = 0010 a^b = 0101 ~a&b|a&~b = 0101 ~a = 1100 三 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数。它的通用格式如下所示: value << num 这里,num 指定要移位值value 移动的位数。也就是,左移运算符<<使指定值的所有位都左移num位。每左移一个位,高阶位都被移出(并且丢弃),并用0填充右边。这意味着当左移的运算数是int 类型时,每移动1位它的第31位就要被移出并且丢弃;当左移的运算数是long 类型时,每移动1位它的第63位就要被移出并且丢弃。 在对byte 和short类型的值进行移位运算时,你必须小心。因为你知道Java 在对表达式求值时,将自动把这些类型扩大为 int 型,而且,表达式的值也是int 型。对byte 和short类型的值进行移位运算的结果是int 型,而且如果左移不超过31位,原来对应各位的值也不会丢弃。但是,如果你对一个负的byte 或者short类型的值进行移位运算,它被扩大为int 型后,它的符号也被扩展。这样,整数值结果的高位就会被1填充。因此,为了得到正确的结果,你就要舍弃得到结果的高位。这样做的最简单办法是将结果转换为byte 型。下面的程序说明了这一: // Left shifting a byte value. class ByteShift { public static void main(String args[]) { byte a = 64, b; int i; i = a << 2; b = (byte) (a << 2); System.out.println("Original value of a: " + a); System.out.println("i and b: " + i + " " + b); } } 该程序产生的输出下所示: Original value of a: 64 i and b: 256 0 因变量a在赋值表达式中,故被扩大为int 型,64(0100 0000 )被左移两次生成值256 (10000 0000 )被赋给变量i。然而,经过左移后,变量b中惟一的1被移出,低位全部成了0,因此b的值也变成了0。 既然每次左移都可以使原来的操作数翻倍,程序员们经常使用这个办法来进行快速的2 的乘法。但是你要小心,如果你将1移进高阶位(31或63位),那么该值将变为负值。下面的程序说明了这一: // Left shifting as a quick way to multiply by 2. class MultByTwo { public static void main(String args[]) { int i; int num = 0xFFFFFFE; for(i=0; i<4; i++) { num = num << 1; System.out.println(num); } } 这里,num 指定要移位值value 移动的位数。也就是,左移运算符<<使指定值的所有位都左移num位。每左移一个位,高阶位都被移出(并且丢弃),并用0填充右边。这意味着当左移的运算数是int 类型时,每移动1位它的第31位就要被移出并且丢弃;当左移的运算数是long 类型时,每移动1位它的第63位就要被移出并且丢弃。 在对byte 和short类型的值进行移位运算时,你必须小心。因为你知道Java 在对表达式求值时,将自动把这些类型扩大为 int 型,而且,表达式的值也是int 型。对byte 和short类型的值进行移位运算的结果是int 型,而且如果左移不超过31位,原来对应各位的值也不会丢弃。但是,如果你对一个负的byte 或者short类型的值进行移位运算,它被扩大为int 型后,它的符号也被扩展。这样,整数值结果的高位就会被1填充。因此,为了得到正确的结果,你就要舍弃得到结果的高位。这样做的最简单办法是将结果转换为byte 型。下面的程序说明了这一: // Left shifting a byte value. class ByteShift { public static void main(String args[]) { byte a = 64, b; int i; i = a << 2; b = (byte) (a << 2); System.out.println("Original value of a: " + a); System.out.println("i and b: " + i + " " + b); } } 该程序产生的输出下所示: Original value of a: 64 i and b: 256 0 因变量a在赋值表达式中,故被扩大为int 型,64(0100 0000 )被左移两次生成值256 (10000 0000 )被赋给变量i。然而,经过左移后,变量b中惟一的1被移出,低位全部成了0,因此b的值也变成了0。 既然每次左移都可以使原来的操作数翻倍,程序员们经常使用这个办法来进行快速的2 的乘法。但是你要小心,如果你将1移进高阶位(31或63位),那么该值将变为负值。下面的程序说明了这一: // Left shifting as a quick way to multiply by 2. class MultByTwo { public static void main(String args[]) { int i; int num = 0xFFFFFFE; for(i=0; i<4; i++) { num = num << 1; System.out.println(num); } } } 该程序的输出如下所示: 536870908 1073741816 2147483632 -32 初值经过仔细选择,以便在左移 4 位后,它会产生-32。正如你看到的,当1被移进31 位时,数字被解释为负值。 四 右移运算符 右移运算符>>使指定值的所有位都右移规定的次数。它的通用格式如下所示: value >> num 这里,num 指定要移位值value 移动的位数。也就是,右移运算符>>使指定值的所有位都右移num位。下面的程序片段将值32右移2次,将结果8赋给变量a: int a = 32; a = a >> 2; // a now contains 8 当值中的某些位被“移出”时,这些位的值将丢弃。例如,下面的程序片段将35右移2 次,它的2个低位被移出丢弃,也将结果8赋给变量a: int a = 35; a = a >> 2; // a still contains 8 用二进制表示该过程可以更清楚地看到程序的运行过程: 00100011 35 >> 2 00001000 8 将值每右移一次,就相当于将该值除以2并且舍弃了余数。你可以利用这个特将一个整数进行快速的2的除法。当然,你一定要确保你不会将该数原有的任何一位移出。 右移时,被移走的最高位(最左边的位)由原来最高位的数字补充。例如,如果要移走的值为负数,每一次右移都在左边补1,如果要移走的值为正数,每一次右移都在左边补0,这叫做符号位扩展(保留符号位)(sign extension ),在进行右移操作时用来保持负数的符号。例如,–8 >> 1 是–4,用二进制表示如下: 11111000 –8 >>1 11111100 –4 一个要注意的有趣问题是,由于符号位扩展(保留符号位)每次都会在高位补1,因此-1右移的结果总是–1。有时你不希望在右移时保留符号。例如,下面的例子将一个byte 型的值转换为用十六 进制表示。注意右移后的值与0x0f进行按位与运算,这样可以舍弃任何的符号位扩展,以便得到的值可以作为定义数组的下标,从而得到对应数组元素代表的十六进制字符。 // Masking sign extension. class HexByte { static public void main(String args[]) { char hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'' }; byte b = (byte) 0xf1; System.out.println("b = 0x" + hex[(b >> 4) & 0x0f] + hex[b & 0x0f]);}} 该程序的输出如下: b = 0xf1 五 无符号右移 正如上面刚刚看到的,每一次右移,>>运算符总是自动地用它的先前最高位的内容补它的最高位。这样做保留了原值的符号。但有时这并不是我们想要的。例如,如果你进行移位操作运算数不是数字值,你就不希望进行符号位扩展(保留符号位)。当你处理像素值或图形时,这种情况是相当普遍的。在这种情况下,不管运算数的初值是什么,你希望移位后总是在高位(最左边)补0。这就是人们所说的无符号移动(unsigned shift )。这时你可以使用Java 的无符号右移运算符>>> ,它总是在左边补0。 下面的程序段说明了无符号右移运算符>>> 。在本例中,变量a被赋值为-1,用二进制表示就是32位全是1。这个值然后被无符号右移24位,当然它忽略了符号位扩展,在它的左边总是补0。这样得到的值255被赋给变量a。 int a = -1; a = a >>> 24; 下面用二进制形式进一步说明该操作: 11111111 11111111 11111111 11111111 int型-1的二进制代码>>> 24 无符号右移24位00000000 00000000 00000000 11111111 int型255的二进制代码 由于无符号右移运算符>>> 只是对32位和64位的值有意义,所以它并不像你想象的那样有用。因为你要记住,在表达式中过小的值总是被自动扩大为int 型。这意味着符号位扩展和移动总是发生在32位而不是8位或16位。这样,对第7位以0开始的byte 型的值进行无符号移动是不可能的,因为在实际移动运算时,是对扩大后的32位值进行操作。下面的例子说明了这一: // Unsigned shifting a byte value. class ByteUShift { static public void main(String args[]) { int b = 2; int c = 3; a |= 4; b >>= 1; c <<= 1; a ^= c; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); } } 该程序的输出如下所示: a = 3 b = 1 c = 6 还不清楚,移位运算有多大的用处,可是面试时经常会考。现在重温一下子。 原文地址:(http://www.ddvip.net/program/java/index1/28.htm)
1.本书1~21章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:UltraEdit12.10a、eclipse-jee-europa Web浏览器:Microsoft Internet Explorer 6.0及以上版本 Web服务器:Tomcat 5.5.20及以上版本 Java运行时环境:Java5.0 JRE及以上版本 2.本书所附光盘范例 第1章(\c01) 示例描述:演示JavaScript的简单应用及JavaScript特效。 1.1.html 用JavaScript开发的弹出式“Hello World”实例。 1.2.html 在页面中输出的“Hello World”。 1.3.html 使用JavaScript进行文本框值的判断。 1.4.html 使用JavaScript对网页中的内容进行验证。 1.5.html HMTL中调用.js文件。 1.6.html 使用“”标记,实现的滚动字幕效果。 1.7.html 使用JavaScript实现简单的字幕滚动。 1.8.html 使用JavaScript实现字幕连续滚动。 1.9.html 使用JavaScript实现的简单数字时钟。 1.10.html 使用JavaScript实现的带阴影的数字时钟。 1.11.html 使用JavaScript实现的获取当前详细日期时间信息的数字时钟。 1.12.html 使用JavaScript实现的浏览器地震效果。 common.js 实现数据检验的独立的.js文件。 第2章(\c02) 实例描述:学习JavaScript的基本语法。 2.1.html JavaScript中this在不同位置指向的对象。 2.2.html null类型的简单应用。 2.3.html 算术运算符用法。 2.4.html 逻辑运算符使用方法。 2.5.html 位运算符使用方法。 2.6.html 赋值运算符使用方法。 2.7.html 条件运算符使用方法。 2.8.html 位操作运算符使用方法。 2.9.html 字符串运算符用法。 2.10.html 布尔表达式的使用。 2.11.html 判断金额是否正常。 2.12.html 不加break的switch语句。 2.13.html switch语句使用方法。 2.14.js 将函数作为参数传递。 2.15.html arguments参数的使用。 2.16.html apply方法与call方法的使用。 第3章(\c03) 示例描述:学习JavaScript的高级语法。 3.1.html 连接字符串。 3.2.html indexOf()函数与lastIndexOf()函数。 3.3.html 截取字符串的子串。 3.4.html 用户自定义的实现slice函数功能的函数。 3.5.html 删除数组最后项的方法。 3.6.html 向数组头添加一个项。 3.7.html 多维数组的实现方法。 第4章(\c04) 示例描述:介绍JavaScript的面向对象特性。 4.1.html 对象的创建。 4.2.html 作为关联数组的对象与数组对象实现方式比较。 4.3.html prototype的用法。 4.4.html prototype实现继承机制。 4.5.html try-catch-finally语句执行流程。 第5章(\c05) 示例描述:介绍JavaScript文档对象模型。 5.1.html 使用DOM获取各级别节。 5.2.html 使用DOM获取body元素。 5.3.html 获取元素的子节。 5.4.html 改变div的内容。 5.5.html 获取表格第1行。 5.6.html 获取表格的某列。 5.7.html 修改表格的内容。 5.8.html 无刷新效果更改表格的某行。 第6章(\c06) 示例描述:介绍JavaScript与表单控件。 6.1.html JavaScript获取文本框的值。 6.2.html JavaScript控制文本框。 6.3.html 文本框的JavaScript特效。 6.4.html 获取select元素的值。 6.5.html JavaScript控制列表框与组合框。 6.6.html 多级下拉列表联动。 6.7.html 各种使用JavaScript获取复选框值的方法。 6.8.html JavaScript控制复选框。 6.9.html 复选框的JavaScript特效。 6.10.html JavaScript取单选框的值。 6.11.html JavaScript控制单选框。 6.12.html 单选框的JavaScript特效。 6.13.html 使用JavaScript控制按钮是否可用。 6.14.html 重置按钮的效果。 6.15.html 提交按钮的效果。 第7章(\c07) 示例描述:学习JavaScript的事件处理。 7.1.html 双击某行变换背景色。 7.2.html 获取鼠标的位置。 7.3.html div中显示选中文本。 7.4.html 检测onkeydown事件与onkeypress事件执行的先后顺序。 7.5.html 窗口离开时提示。 7.6.html 防止onresize事件重复执行。 7.7.html onerror事件相关处理。 7.8.html onsubmit事件使用方法。 7.9.html 失去焦时检验文本框的值。 7.10.html 获得焦时文本框样式更改。 img.JPG onblur事件中加载的图片文件。 第8章(\c08) 示例描述:学习JavaScript中的document对象。 8.1.html 得到文档锚对象数组。 8.2.html 获取并设置cookie信息。 8.3.html 获取文档标记的数组及相关操作。 8.4.html 获取location对象的属性值并刷新页面。 8.5.html 包含链接的文档。 8.6.html 包含链接的文档打开的目标文档。 8.7.html 清空文档的内容。 8.8.html 是否调用close()方法的区别。 8.9.html 多次打开输出流的效果。 8.10.html 使用write()方法生成页面。 8.11.html 使用writeln()方法生成文本并换行。 第9章(\c09) 示例描述:学习JavaScript中的window对象。 9.1.html 控制状态条信息显示。 9.2.html 框架定义。 9.3.html 框架定义时使用的页面。 9.4.html 使用location属性实现窗口跳转。 9.5.html 获取打开当前窗口的窗口并调用其属性。 9.6.html 多框架分离页面。 9.7.html 检验打开消息框后的执行情况。 9.8.html 使用确认对话框的方法。 9.9.html 使用输入对话框修改table的值。 9.10.html 按照要求打开新窗口。 9.11.html 设定重复执行的延时程序。 top.html 框架定义与多框架分离页面时使用的框架头部页面。 left.html 多框架分离页面时使用的左侧框架页面。 right.html 多框架分离页面时使用的右侧框架页面。 第10章(\c10) 示例描述:学习JavaScript中的正则表达式。 10.1.html 使用句符号匹配特定字符串。 10.2.html 使用方括号符号实现匹配出租车牌号。 10.3.html 使用或符号匹配日期。 10.4.html 正则表达式中的量词。 10.5.html 正则表达式中的反义符号。 10.6.html 字符串中查找满足表达式的字符。 10.7.html 使用match()方法匹配正则表达式字符串。 10.8.html 匹配数字。 10.9.html 匹配日期格式。 10.10.html 匹配时间格式。 10.11.html 匹配HTML标记。 10.12.html 匹配邮政编码。 10.13.html 匹配IP地址。 10.14.html 匹配Email地址。 10.15.html 匹配网址URL。 10.16.html 匹配手机号码。 10.17.html 匹配中文字符。 第11章(\c11) 示例描述:介绍JavaScript管理cookie和userData。 11.1.html JavaScript写数据到cookie。 11.2.html JavaScript获取cookie信息。 11.3.html JavaScript修改cookie的保存有效期。 11.4.html 保存数据到userData。 11.5.html JavaScript获取userData的数据。 11.6.html 使用cookie登录。 welcome.html 使用cookie登录成功的欢迎界面。 第12章(\c12) 示例描述:介绍JavaScript与样式表。 12.1.html 外部定义样式的优先级。 12.2.html 百分比单位的使用。 12.3.html 在当前页面中嵌入CSS样式文件。 12.4.html JavaScript实现动态更改元素的CSS样式。 12.5.html JavaScript实现批量更改CSS样式。 12.6.html JavaScript使用CSS模拟图片的圆角效果。 style.css 页面中嵌入的CSS样式文件。 style1.css 更改样式时使用的CSS样式文件。 roundcorner.css JavaScript使用CSS模拟图片的圆角效果时使用的CSS样式文件。 第13章(\c13) 示例描述:介绍JavaScript与XML。 13.1.xml 表示书籍信息的XML信息。 13.2.js 跨浏览器兼容的XPath实现。 13.3.xml 使用XSLT实现“Hello World”的XML文件。 13.4.xsl 使用XSLT实现“Hello World”的XSLT文件。 13.5.html 内嵌的XML数据岛。 13.6.html 外嵌的XML数据岛。 13.7.html 在HTML中显示XML数据。 13.8.html JavaScript操作XML数据岛。 13.9.jsp JavaScript+XML实现通讯录。 addressbook.war JavaScript+XML实现通讯录的工程文件(可以直接在Tomcat下发布运行)。 addressbook.xml 记录通讯录的XML文件。 第14章(\c14) 示例描述:介绍JavaScript与Microsoft Office互操作的方法。 14.1.html 使用JavaScript向Word中写入内容。 14.2.html 使用JavaScript从Word中读取内容。 14.3.html 使用JavaScript向Excel文件中写入内容。 14.4.html 使用JavaScript从Excel中读取内容。 第15章(\c15) 示例描述:介绍JavaScript与各种浏览器插件的交互方法。 15.1.html 使用JavaScript操作Java Applet。 15.2.html 在Java Applet中调用JavaScript。 15.3.svg 基本SVG文件。 15.4.svg 使用JavaScript操作SVG。 Calculate.java 计算浮运算结果的Applet。 Calculate.class Calculate.java的字节码文件。 Calculate1.java 计算浮运算结果并调用页面中JavaScript函数的Applet。 Calculate1.class Calculate1.java的字节码文件。 第16章(\c16) 示例描述:介绍JavaScript访问本地文件的各种方法。 16.1.html 使用JavaScript访问驱动器。 16.2.html 在JavaScript中使用FileSystemObject操作文件夹。 16.3.html 使用JavaScript获取指定文件并列出其内容。 16.4.html 在JavaScript中使用FileSystemObject操作本地文件的方法。 第18章(\c18) 示例描述:学习XMLHttpRequest对象。 18.1.html 使用Ajax获取HTTP头信息。 18.2.html 使用Ajax获取全部响应头信息。 第19章(\c19) 示例描述:演示常用Ajax应用实例。 ajaxmodel.war Ajax实例应用的项目文件(可直接在Tomcat中发布运行)。 \ajaxmodel\amel\html\firstAjax.jsp 显示XMLHttpRequest对象状态。 \ajaxmodel\amel\html\userReg.html 完成验证的客户端页面。 \ajaxmodel\amel\html\city.jsp 动态加载列表框的客户端页面。 \ajaxmodel\amel\html\autoRefresh.jsp 自动刷新网页的客户端页面。 \ajaxmodel\amel\html\processBar.jsp 显示进度条的客户端页面。 \ajaxmodel\src\bonze\UserValServlet.java 完成验证的服务器端。 \ajaxmodel\src\bonze\CityServlet.java 动态加载列表框的服务器端。 \ajaxmodel\src\bonze\AutoRefServlet.java 自动刷新网页的服务器端。 \ajaxmodel\src\bonze\ProcessServlet.java 显示进度条的服务器端。 第20章(\c20) 示例描述:学习JSON并介绍Ajax与JSON。 20.1.html 使用JSON封装数据。 20.2.html 使用JSON值的数组封装数据。 json2.js JSON的.js库文件。 testJson.war 使用JSON与服务器传递信息的项目文件(可直接在Tomcat下发布运行)。 \lib目录 在Java中使用JSON需要的lib包列表。 \testJson\src\jsonExercise\JSONServlet.java 处理页面请求的Servlet。 \testJson\src\jsonExercise\ComdtyBean.java 商品信息的POJO。 \testJson\WebRoot\orderInfo.jsp 录入商品信息的JSP页面。 第21章(\c21) 示例描述:介绍Prototype框架。 21.1.html 使用Prototype的$()方法获取指定元素。 21.2.html 使用Prototype的$A()方法获取数组。 21.3.js 使用Prototype的Try.these()创建XML DOM。 21.4.html Prototype的Form对象的使用方法。 prototype.js Prototype的.js库文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值