Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何确定结构和单元数组之间的相等性_Matlab_Comparison_Equality - Fatal编程技术网

Matlab 如何确定结构和单元数组之间的相等性

Matlab 如何确定结构和单元数组之间的相等性,matlab,comparison,equality,Matlab,Comparison,Equality,我不明白为什么isequal在以下两种用例中不起作用: >> tempStruct = struct('a', 1, 'b', 2, 'c', 3) tempStruct = scalar structure containing the fields: a = 1 b = 2 c = 3 >> tempCArray = {1 2 3} tempCArray = { [1,1] = 1 [1,2] = 2 [1,

我不明白为什么
isequal
在以下两种用例中不起作用:

>> tempStruct = struct('a', 1, 'b', 2, 'c', 3)

tempStruct =

  scalar structure containing the fields:

    a =  1
    b =  2
    c =  3

>> tempCArray = {1 2 3}

tempCArray =
{
  [1,1] =  1
  [1,2] =  2
  [1,3] =  3
}
在我看来,
tempStruct
tempCArray
在概念上是相等的,但是

>> isequal(tempStruct, tempCArray)

ans = 0
如果说这是因为
tempStruct
的索引结构不同于
tempCArray
,是否正确?例如:

>> tempStruct(2)
error: A(I): index out of bounds; value 2 out of bound 1
>> tempCArray(2)
ans =
{
  [1,1] =  2
}
但是,我尝试将
tempStruct
转换为单元格数组:

>> struct2cell(tempStruct)

ans =
{
  [1,1] =  1
  [2,1] =  2
  [3,1] =  3
}
现在看起来与
tempCArray
相同。然而

>> isequal(struct2cell(tempStruct), tempCArray)

ans = 0
为什么会发生这种情况?

struct2cell(tempStruct)
tempCArray
不相同

  • tempCArray
    中,索引为
    [1,1]、[1,2]、[1,3]
  • struct2cell(tempStruct)
    中,索引是
    [1,1],[2,1],[3,1]
这些显然不是相同的单元阵列
tempCArray
是行单元格向量,而
struct2cell(tempStruct)
是列单元格向量

如果希望两者相等,请执行以下操作:

>> isequal(struct2cell(tempStruct)', tempCArray)

ans = 1
如果使用
”转置任一单元格数组,则它们将相等

编辑:

如果希望不区分行/列,请使用以下代码:

tempStructCell = struct2cell(tempStruct);    
isequal(tempStructCell(:), tempCArray(:));
struct2cell(tempStruct)
tempCArray
不相同

  • tempCArray
    中,索引为
    [1,1]、[1,2]、[1,3]
  • struct2cell(tempStruct)
    中,索引是
    [1,1],[2,1],[3,1]
这些显然不是相同的单元阵列
tempCArray
是行单元格向量,而
struct2cell(tempStruct)
是列单元格向量

如果希望两者相等,请执行以下操作:

>> isequal(struct2cell(tempStruct)', tempCArray)

ans = 1
如果使用
”转置任一单元格数组,则它们将相等

编辑:

如果希望不区分行/列,请使用以下代码:

tempStructCell = struct2cell(tempStruct);    
isequal(tempStructCell(:), tempCArray(:));
struct2cell(tempStruct)
tempCArray
不相同

  • tempCArray
    中,索引为
    [1,1]、[1,2]、[1,3]
  • struct2cell(tempStruct)
    中,索引是
    [1,1],[2,1],[3,1]
这些显然不是相同的单元阵列
tempCArray
是行单元格向量,而
struct2cell(tempStruct)
是列单元格向量

如果希望两者相等,请执行以下操作:

>> isequal(struct2cell(tempStruct)', tempCArray)

ans = 1
如果使用
”转置任一单元格数组,则它们将相等

编辑:

如果希望不区分行/列,请使用以下代码:

tempStructCell = struct2cell(tempStruct);    
isequal(tempStructCell(:), tempCArray(:));
struct2cell(tempStruct)
tempCArray
不相同

  • tempCArray
    中,索引为
    [1,1]、[1,2]、[1,3]
  • struct2cell(tempStruct)
    中,索引是
    [1,1],[2,1],[3,1]
这些显然不是相同的单元阵列
tempCArray
是行单元格向量,而
struct2cell(tempStruct)
是列单元格向量

如果希望两者相等,请执行以下操作:

>> isequal(struct2cell(tempStruct)', tempCArray)

ans = 1
如果使用
”转置任一单元格数组,则它们将相等

编辑:

如果希望不区分行/列,请使用以下代码:

tempStructCell = struct2cell(tempStruct);    
isequal(tempStructCell(:), tempCArray(:));

它们是不同类型的变量!如果您使用
tempstruct=struct('a',{1 2 3],'b',2,'c',3)
tempstruct.a
将与
{a b c}
相同,但单元格数组的结构不应等于单元格数组。它们是不同类型的变量!如果使用
tempstruct=struct('a',{1 2 3],'b',2,'c',3)
那么
tempstruct.a
将与
{a b c}
相同,但单元格数组的结构不应等于单元格数组。它们是不同类型的变量!如果您使用
tempstruct=struct('a',{1 2 3],'b',2,'c',3)
那么
tempstruct.a
将与
{a b c}相同
,但单元格数组的结构不应等于单元格数组。它们是不同类型的变量!如果您将
tempstruct=struct('a',{1 2 3],'b',2,'c',3)
设置为
tempstruct.a
将与
{a b c}相同
,但单元格数组的结构不应等于单元格数组。有没有办法将这两种类型强制为行/列不可知的内容,即如果使用线性索引,两个单元格数组返回相同的值。我想另一种方法是找到一种向struct2cell,就像您可以为
cell2struct
做的一样。您可以简单地使用
restrape
从行到列进行更改,反之亦然。例如,
tempStructCell
可以使用以下命令将列单元格向量转换为行单元格向量:
tempStructCell=restrape(struct2cell(tempStruct),1,3)有没有办法将这两种类型强制为行/列不可知的类型,即如果使用线性索引,两个单元格数组返回相同的值。我想另一种方法是找到一种向
struct2cell
提供维度参数的方法,就像为
cell2struct提供维度参数一样e> 。您只需使用
重塑
即可从行更改为列,反之亦然。例如,
tempStructCell
可以使用以下命令从列转换为行单元格向量:
tempStructCell=重塑(struct2cell(tempStruct),1,3)有没有办法将这两种类型强制为行/列不可知的类型,即如果使用线性索引,两个单元格数组返回相同的值。我想另一种方法是找到一种向
struct2cell
提供维度参数的方法,就像为
cell2struct提供维度参数一样e> 。您只需使用
重塑
即可从行更改为列,反之亦然。例如,
tempStructCell
可以从colu转换