MATLAB 从数组中随机取几个下标不同的元素

MATLAB 从数组中随机取几个下标不同的元素,第1张

如果这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 = 0

For 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根据数组中的元素怎样查找下标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9624146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存