24小时热门版块排行榜    

查看: 194  |  回复: 2
当前主题已经存档。

fspdlh

金虫 (正式写手)

[交流] [求助]有关矩阵的问题

我有两个矩阵
a=[10 40 20 40 60 80]
b=[ 10 20 30 40 50 60 70 80  ;
       3  8   5   3  2    7   2  8   ]
我想搞一个函数,使它返回[ 3 3 8 3 7  8],就是查找a在b中的对应素,我知道for语句肯定是可以的,有没有更简单的函数一条语句就能出来啊
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

★ ★ ★ ★ ★
fspdlh(金币+1,VIP+0):先谢谢了
fspdlh(金币+4,VIP+0):看来就得用循环,金币都送您吧 3-24 08:39
好像还非得用循环的,我考虑了下!

不知道别的虫友有啥好办法没?我也想学学!
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
2楼2008-12-25 14:07:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ning903

木虫 (职业作家)

笨笨家族小海豚

★ ★ ★
woshilsh(金币+3,VIP+0):感谢,但是问题还没解决呐
9.3.5  find函数
find函数用于从给定的字符串中寻找并返回第一处匹配给定子字符串开始的序号。如果字符串不能包含与该子字符串相匹配的部分,则返回-1。两个字符串相匹配就是指两个字符串是完全一样的,包括大小写一样。例如,字符串"abcd"与"abcd"就是互相匹配的,字符串"myabcdef"中就包含有与"abcd"相匹配的子字符串。

find函数的语法格式为:

String.find(string, subString)

它的两个参数string和subString的取值都是字符串或可以合法地转换为字符串的数据,其中string是用于从中寻找子字符串的字符串,subString是想要寻找的子字符串。

仍以字符串"myabcdef"和"abcd"为例来说,由于字符串"myabcdef"中包含有与"abcd"相匹配的子字符串,该子字符串在"myabcdef"中开始的序号是2,即从第3个字符开始,所以String.find("myabcdef", "abcd"返回的结果为2。

由于字符串中的字符序号都是整数,所以find函数能够运算时返回的结果都是整数。如果给定的参数值不合法,find函数无法寻找子字符串的序号,则会返回无效值invalid。

作为举例,我们给出使用find函数的几个例子:



var a = "abcde";

var b = string.find(a, "cd";                      // 变量a中含有cd且从第3个字符开始,故b = 2

var c = string.find(34.2, "de";                 // 无法匹配,所以c = -1

var d = string.find(a, "qz";                      // 无法匹配,所以d = -1

var e = string.find(34, "3";                      // 34转换为字符串后第1个字符与"3"匹配,故e = 0





9.3.6  replace函数
replace函数用于在一个给定的字符串中,使用一个新的子字符串替换其中所有旧的子字符串,而且替换是严格区分大小写的。replace函数的语法格式如下:

String.replace(string, oldSubString, newSubString)

它有3个参数,各参数的取值都是字符串或可以合法转换为字符串的数据。string参数代表给定的字符串,oldSubString参数代表字符串string中含有的将被替换掉的旧字符串,newSubString参数代表用于替换的新字符串。replace函数的功能就是在string字符串中,将凡是有oldSubString的地方,都以newSubString来代替。

例如,下述几条语句就给出了使用replace函数替换字符串的例子:



var a = "Hello Christina. What is up Christina?";

var newName = "Marie"

var oldName = "Christina"

var c = String.replace(a, oldName, newName);           // 将给定字符串中的Christina一律替换为Marie,

                            // 所以结果为c = "Hello Marie. What is up Marie?"

var d = String.replace(a, newName, oldName);          // 将给定字符串中的Marie一律替换为Christina,

                            // 但其中没有Marie,所以不替换,结果为d = "Hello Christina. What is up Christina?"



9.3.7  elements函数
elements函数用于计算并返回给定字符串string中被分隔符seprator所分割得到的元素个数。WMLScript规定空字符串也是有效的分割元素,而字符串至少是个空字符串,所以字符串至少含有1个分隔元素,因此elements函数的返回结果不会是一个小于或等于0的数。elements函数的语法格式为:

String.elements(string, separator)

它的参数string和separator的取值均为字符串,separator字符串中只有第1个字符才用作分割符。如果两个参数的取值均符合要求,则elements函数可返回一个代表分隔元素个数的整数值,否则就会返回无效值invalid。特别是,如果separator是空字符串,那么elements函数也会返回invalid。

下面我们给出使用elements函数的几个例子,同时给出了返回结果:



var a = "My name is Joe; Age 50;";

var b = String.elements(a, " ";                          // 分隔符为空格,故b = 6

var c = String.elements(a, ";";                           // 分隔符为“;”,故c = 3

var d = String.elements("", ";";                         // 分隔符为“;”而被分字符串为空串,故d = 1

var e = String.elements("a", ";";                       // 分隔符为“;”,故e = 1

var f = String.elements(";", ";";                        // 分隔符为“;”,故f = 2

var g = String.elements(";;,;", ";,";                    // 分隔符实取为“;”,故g = 4

9.3.8  elementAt函数
elementAt函数用于在给定的字符串中,搜索并返回由序号index指定的元素,该元素使用separator定义的分隔符来分割。elementAt函数的语法格式如下:

String.elementAt(string, index, separator)

它有3个参数,其中string是给定的字符串,index是元素的序号,separator是元素的分割符。elementAt函数的返回值是字符串或无效值invalid。

elementAt函数工作的一般规则是:

(1) 如果index比0小,那么elementAt函数就会返回string中的第1个元素;

(2) 如果index比元素的个数还多,那么就返回最后1个元素;

(3) 如果string是空字符串,elementAt函数返回的也将是1个空字符串;

(4) 如果index是浮点数,那么WMLScript将首先使用Float.int( )函数功能将其转换为整数,然后再通过elementAt函数进行搜索;

(5) 如果separator是空字符串,则返回无效值invalid。

下面给出了使用elementAt函数的几个例子:

var a = "My name is Joe; Age 50;";

var b = String.elementAt(a, 0, " ";     // 返回序号为0即第1个由空格分隔的元素,故b = "My"

var c = String.elementAt(a, 14, ";";    // 由分号分隔,序号为14的元素不存在,所以c = ""

var d = String.elementAt(a, 1, ";";     // 返回由分号分隔,序号为1的元素,所以d = " Age 50"

9.3.9  removeAt函数
removeAt函数的功能是在给定的字符串中,删除在序号index处由分隔符seprator所确定的元素。它的语法格式为:

String.removeAt(string, index, separator)

它有3个参数,string参数是给定的字符串,index参数用于指定被删除元素的序号,separator参数定义的是用来确定元素分割的分割符。

如果用户给出的index比0小,那么removeAt函数将把index作为0对待。如果index多于元素的个数,那么removeAt函数就会把最后一个元素删除掉。如果string或separator是空字符串,那么removeAt函数就返回一个空字符串。

如果index是浮点数,则WMLScript首先使用Float.int( )函数将index转换成整数,然后再通过removeAt函数删除指定序号处的元素。

如果给定的3个参数不符合要求,则removeAt函数就会返回无效值invalid。

下面我们给出字符串变量a,利用removeAt函数对它进行不同的删除操作后,可以得到相应的返回结果:



var a = "A  A;  B  C  D";

var s = "  ";

var b = String.removeAt(a, 1, s);              // 删除后结果为b = "A  B  C  D"

var c = String.removeAt(a, 0, ";";           // 删除后结果为c = "  B  C  D"

var d = String.removeAt(a, 14, ";";         // 删除后结果为d = "A  A"
小海豚来到小木虫,各位达达多多关照!!! 感触我的温度
3楼2008-12-25 14:38:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fspdlh 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见