2014-02-17 54 views
1

我的文件不工作,我不知道爲什麼。 當我運行Y =試驗(A,x)的後,我delcare:MATLAB輸入它不是一個雙重錯誤

A =地板(蘭特(8100));

x = floor(rand(100,1));

我得到'double'類型的輸入參數的未定義函數'test'。

function [ output_args ] = untitled2(~) 
    function y = test(A, x) 
    %This function computes the pro 
    duct of matrix A by 
    vector x row-wise 
    % define m number of rows here to feed into for loop 
    [ma,na] = size(A); 
    [mx,nx] = size(x); 
    % use if statement to check for proper dimensions 
    if(na == mx && nx == 1) 
    y = zeros(ma,1); % initialize y vector for n = 1:ma 
    y(n) = A(n,:)*x; 
    %end 
    else 
    disp('Dimensions of matrices do not match') 
    y = []; 
    end 
    end 
    end 
+3

你不能叫嵌套函數從命令窗口中,只有頂級的功能。 –

+0

那麼,我該如何解決這個問題?我是新來的這種語言 – KnowledgeGeek

回答

3

由於本福格特正確告訴你,在你的評論的問題是,測試在裏面未命名定義。

對於您發佈的代碼,不需要做這樣的事情,所以你可以通過宣佈測試沒有外部untitled2來解決。所以只需要創建一個test.m文件只是使用的代碼

function y = test(A, x) 
    %This function computes the product of matrix A by vector x row-wise 
    % define m number of rows here to feed into for loop 
    [ma,na] = size(A); 
    [mx,nx] = size(x); 
    % use if statement to check for proper dimensions 
    if(na == mx && nx == 1) 
     y = zeros(ma,1); % initialize y vector 
     for n = 1:ma 
      y(n) = A(n,:)*x; 
     end 
    else 
     disp('Dimensions of matrices do not match') 
     y = []; 
    end 
end 

這部分,然後再調用函數

+0

好的,所以我這樣做,它說第4行:沒有足夠的輸入行參數。 – KnowledgeGeek

+0

您的代碼的一部分位於註釋行內。我已經在上面顯示的代碼中修復了它。嘗試複製粘貼並重新執行。 – cifz

+0

好吧,現在當我運行它,我得到了。 mfile中的錯誤(第11行) y(n)= A(n,:)* x; – KnowledgeGeek