如何比较 class 类型的两个不同变量是否相等?

How do I compare class type of two different variables for equality?

我正在尝试使用 switch case 块做一个声明,我想知道如何使用 2 个变量?

如果情况是 'double' 我应该添加变量 a 和 b 但如果:

我将如何做
a = [1 2 3 4]
b = [2 1 3 1]
?

到目前为止,我一直在考虑这样做。

a = [1 2 3 4]
b = [2 1 3 1]
c = class (a)
d = class (b)
e = c == d

switch blah
       case 'double'
       a + b
       case 'logical'
       a & b
       otherwise
       disp ('None')


end

等等

现在我需要一个 switch 和 case 块来创建一个场景,如果我们的 switch x 有 case 'double'(class 类型),它将添加变量 a 和 b。

任何帮助将不胜感激。谢谢

我建议您改用 if 语句并用 isequal 做一些事情,例如

>> isequal(class(a), class(b))
ans = 

     1

然后我们可以在 if 语句中使用它,例如

a = [1 2 3 4];
b = [2 1 3 1];

if isequal(class(a), class(b)) && isequal(class(a), 'double')
    a + b
end

switch 语句适用于有多个 case 而不仅仅是 1.

的场景

但是,由于只能使用 switch 语句,您还可以使用多个 switch 语句来检查两个变量是否具有相同的 class

a = [1 2 3 4];
b = [2 1 3 1];

switch class(a)
    case 'double'
        switch class(b)
            case 'double'
                a + b
        end
    case 'logical'
        switch class(b)
            case 'logical'
                a & b
        end
end