作业帮 > 综合 > 作业

Matlab中“logical”的用法问题

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/12 12:47:56
Matlab中“logical”的用法问题
A代表一个N*M的矩阵,b代表一个1*N的矩阵,表示的是A中列的打乱的次序,如b可以表示为【3 1 5 6 2 4】,那么请问,A(logical(b),:)输出来的是什么?
不好意思,b表示的是A中的某一行,或者某几行的行数,如b=[1 4 5];
Matlab中“logical”的用法问题
如果b的行数不等于A的行数的话,用logical是错的,应该直接用A(b, :);
如果b的行数等于A的行数的话,可以用logical.对于[3 1 5 6 2 4]这组数据,logical完了全是true,A(logical(b), :)就相当于A的每一行都取出;如果要取出某几行的话,应该只让b中对应行数的只为true,其余false.
如果你觉得文字说不明白,就举个例子,我来告诉你结果是什么.
再问: 谢谢大神指点,源代码是这样的: nonDomix = find_nd(F_P); Hobjv = F_P(logical(nonDomix),:); F_P是N*M的矩阵,nonDomix的行数不一定等于F_P的行数哦,是部分或者全部,所以我不知道Hobjv输出的是什么。
再答: find_nd这个函数我没见过。也不知道它返回的是什么。我还是用一个微型的例子来说事。
A = rand(6, 3);
B = [6 4 5 1 2 3].';
A(B, :)
C = logical([1 0 1 0 1 0]);
A(C, :)自己跑一下就明白了。