Array(真/假数组)在MATLAB中做什么



我正试图了解MATLAB中对这一特定代码行的处理情况

good_mintratio=handles.mintratio(handles.good)

handles.good是一个大小为(48x60(的数组,其中所有元素都是1。handles.mintraratio也是一个大小为(48x60(的数组,其中包含浮点值。

我运行了以下简单的代码来了解它到底做了什么,但我不太确定到底发生了什么。对于这段代码,

A = [1,2,3; 4,5,6];
B = [1,1,1; 1,1,1];
C=A(B);

这将返回C = [1,1,1;1,1,1]

看起来C和B一样,但包含A的元素,其中B的元素是A的索引。

A = [1,2,3; 4,5,6];
B = [2,1,1; 1,5,1];
C=A(B);

比如,这将使C = [4,1,1;1,3,1]

但是good_mintratio=handles.mintraratio(handles.good(这形成了一个大小为(2880,1(的colmun。看起来所有的元素都组合成了一个单独的colmun,但不确定大小为什么会改变。此外,如果handles.good有一些0(这在MATLAB中意味着false,对吧?(,这会改变结果吗?

当您使用按数组索引时(如C = A(B);中(,有两个选项:

  1. 数组B基于非逻辑数(通常为Double(:输出基于数组A的线性索引
  2. 数组B基于逻辑元素:输出是trueB中的元素的向量

例如:

clear();
mA = reshape(1:9, 3, 3);
mB = randi([1, 9], 3, 3);
mC = logical(randi([0, 1], 3, 3));
mA(mB)
mA(mC)

然后输出:

ans =
5     9     5
9     8     9
8     7     4

ans =
2
5
8

相关内容

  • 没有找到相关文章

最新更新