3

我有一个大小为 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 是另一个数组,我通过普通函数调用而不是使用保存和加载来传递它。使用它,对于“struct”类型的输入参数,我将错误作为未定义的函数或方法“mtimes”。有人可以帮我解决错误吗?

4

1 回答 1

3

当您使用des2=load('c:\\coeffs2.mat');then 时,它会使用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
于 2013-03-27T07:00:40.307 回答