2013-03-27 129 views
3

我有一個大小爲550x128的數組。我將它保存在一個.mat文件中,並再次加載它以在另一個函數中使用它。未定義的函數或方法'mtimes'用於類型爲'struct'的輸入參數

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

我進一步使用此值,如下所示:

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

其中DES1是我傳遞雖然正常功能調用,而不是使用保存和加載該另一個陣列。使用這個,我得到錯誤作爲未定義函數或方法'mtimes'輸入參數的類型'結構'。有人可以幫我解決這個錯誤嗎?

+0

你能發佈更多的代碼嗎?這太簡單了。 – 2013-03-27 06:52:27

+0

相關:http://stackoverflow.com/questions/4718417/matlab-loading-a-mat-file-why-is-it-a-struct-can-i-just-have-the-stored-vars – Ramashalanka 2013-03-27 07:14:21

回答

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 
+0

謝謝你這麼多......工作...... – Twinkal 2013-03-27 07:05:20

相關問題