〜除了逻辑不是什么意思?

时间:2015-12-01 03:05:58

标签: matlab

以下代码在Matlab中做了什么?我搜索了文档,但~显示逻辑不。但我无法将以下输出与逻辑不的任何内容联系起来。

[~, k ] = max([0.9 1.5 4.6; 3.31 0.76 5.4]
Output: 2 1 2

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]),因此您不需要分配变量来保存最大值。