以下代码在Matlab中做了什么?我搜索了文档,但~
显示逻辑不。但我无法将以下输出与逻辑不的任何内容联系起来。
[~, k ] = max([0.9 1.5 4.6; 3.31 0.76 5.4]
Output: 2 1 2
答案 0 :(得分:3)
您正在寻找的相应参考是Symbol Reference,其中声明:
Tilde - 〜
波浪号字符用于比较不相等值的数组, 找到数组的逻辑NOT,并作为输入的占位符 或要从函数调用中省略的输出参数。不等于
...
参数占位符
让fileparts函数返回其第三个输出值并跳过 前两个,用波形符替换参数一和二:
[~, ~, filenameExt] = fileparts(fileSpec);
这是@David在评论中提出的建议。
答案 1 :(得分:3)
~
占位符允许您忽略函数的输出。使用它可以让您确认函数输出了某些内容,但您不必分配变量来存储输出。
当函数在Matlab中返回值时,它返回的参数数量以及这些参数的顺序很重要,并且允许您知道每个返回值是什么。您有时会遇到函数返回的值多于您感兴趣的值的情况,您可以使用~
忽略您不感兴趣的值。
在您的示例中,M = max([0.9 1.5 4.6])
仅返回最大值。如果您想知道最大值的索引,则必须使用[M,I] = max([[0.9 1.5 4.6])
。如果您需要知道最大值的索引但对实际值本身不感兴趣,则可以使用[~,I] = max([0.9 1.5 4.6])
,因此您不需要分配变量来保存最大值。