如果这n个二维数组维数相等,那就简单,做一个数组的数组alls
把这n个数据都做成数组,当成行放进去,取的时候计算一下行就行了,但是必须sn都是同维数矩阵
s1
=
[1,2;3,4];
alls
=
[s1];
s2=[5,6;7,8];
alls
=
[alls;
s2];
s3
=
[9,10;11,12];
alls
=
[alls;
s3];
取s2,这样,先根据2计算行下标,
(2-1)size(s2,1)+1:2size(s2,1)
列全取就是:
alls((2-1)size(s2,1)+1:2size(s2,1),
:);
==============
同理,去sn就是
alls((n-1)size(sn,1)+1:nsize(sn,1),
:);
这个只能通过一个变量累加,然后从中分解出下标值:
k = 0For Each myd In tdata
i = k \ (UBound(tdata, 1) - LBound(tdata, 1) + 1) '第一维下标值
j = k Mod (UBound(tdata, 2) - LBound(tdata, 2) + 1) '第二维下标值
Print "tdata(" & i & "," & j & ")=" & myd
k = k + 1
Next
或者不用遍历,直接顺序读取即可(在数组大小已知的情况下,遍历其实没啥意义了):
For j = LBound(tdata, 1) To UBound(tdata, 1)For i = LBound(tdata, 2) To UBound(tdata, 2)
Print "tdata(" & i & "," & j & ")=" & tdata(i, j)
Next
Next
array array_flip ( array trans)
将trans中的所有元素变为下标,对应的原先的key(下标)变为值
适用于关联数组(索引数组没测试过)
比如
$a = array(
'name'=>'ansuir',
'pet'=>'cat'
);
经过转换后得到的新数组
$b = array_flip($a);
/
$b=array(
'ansuir'=>'name',
'cat'=>'pet'
);
/
这样,就可以通过$b['ansuir'] 得到 'name'了,也就是原先在$a 中的对应下标
这个函数多用于去重数组值,两次翻转之后可以将重复的数组元素去除
下面的例子以
NSArray array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil];
1、获取数组中总共有多少个对象。
- (NSUInteger)count;
NSLog(@"%d",[array count]); 2
2、获取数组中下标对应的元素对象(下标是从0开始)
- (id)objectAtIndex:(NSUInteger)index;
3、在当前数据中追加一个新的对象,并且返回一个新的数据对象(新的数组对象和被追加的对象,是两个不同的数组对象)。
- (NSArray )arrayByAddingObject:(id)anObject;
4、在当前的数组中追加一个新的数据,并且返回一个新的数组对象。
- (NSArray )arrayByAddingObjectsFromArray:(NSArray )otherArray;
5、使用当前的数组生成一个字符串,新生成的字符串使用提供的separator 字符进行分割。
- (NSString )componentsJoinedByString:(NSString )separator;
[array compontsJoinedByString:@","];
运行结果: wendy,andy,tom,jonery,stany
6、检测数据中是否包含指定的对象元素
- (BOOL)containsObject:(id)anObject;
[array containsObject:@"tom"]; YES
7、使用当前的数组生成字符串。可以重写description 改变生成的字符串。相当于java 中的toString 方法。
- (NSString )description;
运行结果
(
wendy,
andy,
tom,
jonery,
stany
)
8、根据设置的locale 进行连接数组
- (NSString )descriptionWithLocale:(id)locale;
- (NSString )descriptionWithLocale:(id)locale indent:(NSUInteger)level;
9、两个数组的第一个元素是否相同,如果相同,则返回 数组中,第一个元素的字符串,反之,返回null 对象
- (id)firstObjectCommonWithArray:(NSArray )otherArray;
10、 从数组中获取 NSRange 对象的数据存放到objects 中,NSRange 的数据标示从location,开始后面length 个数据
- (void)getObjects:(id__unsafe_unretained [])objects range:(NSRange)range;
NSArray array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany",@"张山名称",@"asdta", nil];
NSRange range = NSMakeRange(1, 5);
id objects;
objects = malloc(sizeof(id) rangelength);
[array getObjects:objects range:range];
for(int i = 0; i < rangelength; i++){
NSLog(@"%@",objects[i]);
}
free(objects);
运行的结果
andy
tom
jonery
stany
11、 判断制定的anObject 对象是否存在数组中如果存在返回,对象所在的下标
- (NSUInteger)indexOfObject:(id)anObject;
如果不存在,返回的NSUInteger 与 NSNotFund 相同
NSUIndex index = [array indexOfObject:@"stan"];
if(index == NSNotFound)
{
对象不在数组中
}
11-1、 判断制定的元素,是否在数组中,数组查询的位置,是从rangelocation 的位置开始,到rangelength 的长度结束。
- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;
如果数据存在,返回指定的下标,如果不存在,则返回NSNotFund 。
实质是使用isEqual 进行比较
12、
同上面两个方法一项,测试指定的对象是否在数组中不同的是,这里使用指针进行比较
- (NSUInteger)indexOfObjectId >
string[] str = new string[] {"1","2","3","4","5","6"} ; //声明字符串数据str\x0d\ArrayList arr = new ArrayList(str); //声明一个ArrayList并载入str数组\x0d\int index = arrIndexOf("2"); //通过indexof函数找到2所在数组中的位置\x0d\MessageBoxShow("2在字符串数组第 " + (index + 1)ToString() + " 个位置!"); //然后d出数组中第几个数值是2(因为数组是从0开始的,所以这里使index + 1); 只取数组下标的话,可以将 +1这个 *** 作省去!就是\x0d\MessageBoxShow("2所在数组下标值为: " + indexToString()); //获取数组下标
foreach语句是for的高级形式,可以不需要写自加自减的 *** 作直接遍历数组元素,如果你又想使用foreach又想获取数组元素的下标,你可以在循环外定义一个变量,然后在循环内部进行自增 *** 作,可以获取你要的元素下标,不建议这种做法…………
以上就是关于MATLAB 从数组中随机取几个下标不同的元素全部的内容,包括:MATLAB 从数组中随机取几个下标不同的元素、用VB语言,遍历多维数组时,如何获取当前元素的下标值、php根据数组中的元素怎样查找下标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)