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 は、save と load を使用するのではなく、通常の関数呼び出しで渡す別の配列です。これを使用すると、タイプ「構造体」の入力引数に対して未定義の関数またはメソッド「mtimes」としてエラーが発生します。誰かがエラーを手伝ってくれますか?

4

1 に答える 1

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
于 2013-03-27T07:00:40.307 に答える