我是Matlab的新手,只是被这一行代码困住了:
[r,c] = find(abs(fh) <= 2 );
当心:具有讽刺意味的是,我很容易理解任务的正确部分。
但是,左边部分(可能是变量的定义)...我不知道如何搜索,因为通过将方括号内的内容进行谷歌搜索,我得到的结果太笼统了。
我的假设是这行代码正在创建一个具有r行和c列的矩阵,但是在其余的代码中找不到r和c ....或者它可能是一个包含两个元素的简单数组。 ..但说实话,这对我来说意义不大。
你们能帮我吗?
答案 0 :(得分:1)
只要您看到该语法,就意味着被调用的函数返回一个以上的输出参数(在这种情况下为两个)。
了解函数输出参数的最好方法是检查文档: https://www.mathworks.com/help/matlab/ref/find.html#d120e368337
[row,col] = find(___)返回每个行和列的下标 使用X中的任何输入参数的数组X中的非零元素 以前的语法。
输出参数是位置参数,因此r
是行,c
是行。
答案 1 :(得分:0)
看看Matlab find()
文档。
如果X是向量,则find返回一个与X方向相同的向量。
如果X是多维数组,则find返回结果线性索引的列向量。
如果X不包含非零元素或为空,则find返回一个空数组。
如果您致电
X = [18 3 1 11;
8 10 11 3;
9 14 6 1;
4 3 15 21 ]
[row,col] = find(X>0 & X<10,3)
您将获得:
row = 3×1
2
3
4
col = 3×1
1
1
1
哪个代表满足您定义条件的每个元素的索引(行号和列号)。由于它返回的值不止1个,因此您可以将输出分为两个不同的变量,这就是左侧所代表的含义。