查看: 2887|回復: 0|關注: 0
打印 上一主題 下一主題

辽宁快乐12官方直播: [未答復] 所要用的函數句柄中包含有標量參數怎么處理?

[復制鏈接]

新手

5 麥片

財富積分


辽宁快乐12预测一号码推荐号码 www.exedlj.com.cn 050


1

主題

4

帖子

0

最佳答案
跳轉到指定樓層
1#
發表于 2019-4-5 20:34:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
函數為f(r)=L(1+r)^n*r/((1+r)^n-1)-M,其中r是自變量,L、M、n是標量參數(由使用者設定),我想把這個函數以匿名函數句柄的方式在另一個我創建的函數中使用,請問需要怎樣操作呢?
[rt,f_rt]=BiSection(f,a,b,pre_ab,pre_f)是我要應用于的函數

嘗試1:
  1. L=2*(10^6);n=240;M=10000;
  2. y=L(1+r)^n*r/((1+r)^n-1)-M;
  3. [rt,f_rt]=BiSection(eval(['@(r)',vectorize(y)],0,100,0.1,0.1)
復制代碼


報錯如下:
  1. 錯誤使用 sym/subsindex (line 825)Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and
  2. function body must be sym expression.
復制代碼

嘗試2:
  1. L=2*(10^6);n=240;M=10000;
  2. y=L(1+r)^n*r/((1+r)^n-1)-M;
  3. [rt,f_rt]=BiSection(eval(['@(r)',vectorize(y)],0,100,0.1,0.1)
復制代碼

報錯基本相同:
  1. 錯誤使用 sym/subsindex (line 825)
  2. Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and
  3. function body must be sym expression.
復制代碼

嘗試3:
  1. L=2*(10^6);n=20;M=10000;
  2. [rt,f_rt]=BiSection(@L(1+r)^n*r/((1+r)^n-1)-M,0,100,0.1,0.1)
復制代碼

報錯如下:
  1. [rt,f_rt]=BiSection(@L(1+r)^n*r/((1+r)^n-1)-M,0,100,0.1,0.1)
  2.                        ↑
  3. 錯誤: 表達式無效。調用函數或對變量進行索引時,請使用圓括號。否則,請檢查不匹配的分隔符。
復制代碼

謝謝您的回復!
MATLAB版本是2018b,操作系統是64位mac系統

BiSection.m

1.23 KB, 下載次數: 2

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

關閉

站長推薦上一條 /3 下一條

快速回復 辽宁快乐12预测一号码推荐号码 返回列表