对于'struct'类型的输入参数,未定义的函数或方法'mtimes'

时间:2013-03-27 06:24:09

标签: matlab

我有一个大小为550x128的数组。我将其保存在.mat文件中并再次加载以在另一个函数中使用它。

save('c:\\coeffs2.mat', 'descr2');
des2=load('c:\\coeffs2.mat');

我进一步使用此值如下:

des2t = des2';                          
for i = 1 : size(des1,1)
dotprods = des1(i,:) * des2t; 

其中des1是另一个我通过正常函数调用而不是使用save和load的数组。使用这个我得到错误为未定义函数或方法'mtimes'为'struct'类型的输入参数。有人可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:3)

当您使用des2=load('c:\\coeffs2.mat');时,它会生成一个结构des2,其中包含'c:\\coeffs2.mat'中的变量。这是一个例子:

>> a=rand(3);
>> save b a
>> c=load('b')

c = 

    a: [3x3 double]

>> c.a

ans =

    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575

如果您不想使用结构,请使用load('c:\\coeffs2.mat');。然后会有一个可以使用的变量descr2。以下是使用我刚刚创建的文件的示例:

>> clear all
>> load('b')
>> whos
  Name      Size            Bytes  Class     Attributes

  a         3x3                72  double              

>> a

a =

    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575