簡體   English   中英

倍頻程函數定義錯誤

[英]Octave function definition error

我試圖第一次使用八度,我想創建一個如下函數:

1;
 function test=calc(x)
         a=x^2;
         factorial(a)
 endfunction

 val = calc (3)

我將其保存為calc.m,運行它時出現錯誤,未定義變量x。

我究竟做錯了什么?

更新:最初的問題我設法解決了,但是現在我遇到了另一個問題。 請考慮以下代碼:

init = 5.;
function val=prodval(x)
  global init;
  val=x+init^2;
endfunction
fin=prodval(3)

當我將腳本另存為test.m並運行它時,出現以下錯誤:

>> test

error: for x^A, A must be a square matrix.  Use .^ for elementwise power.
error: called from
    prodval at line 5 column 6
    test at line 7 column 4

這到底是怎么回事? 我看不到我在哪里錯誤定義了矩陣...我也意識到這可能不是函數的最佳定義,但是我正在嘗試...

[更新]

對於每個作用域,要使全局變量“可見”,必須將其聲明為全局變量。 參考

global init = 5;
function val = prodval (x)
   global init;
   val = x + init^2;  
endfunction

fin=prodval(3)
fin =  28

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM