matlab怎麼將迴圈變數作為函式的輸入值

時間 2021-05-02 11:24:25

1樓:椴

如果進行m檔案程式設計,而不知道輸入引數個數

採用:function y=y(varargin)在這裡我簡單描述一下varargin的相關使用(1)對輸入引數個數的判斷採用:

比如y(y1,y2)

則nargin=2;

所以你可以這樣程式設計:

if nargin==2

y=y(y1,y2);

.....

end(2)當使用varargin的時候

如果想要得到引數的值,

比如y=y(y1,y2)呼叫函式是,

在運算時候想要得到y1的值

則varargin就是你想要得到的,

依此類推,varargin就是y2的值

(3)還有相對應的引數varargout和nargout,想要靈活的進行m檔案的程式設計

這兩個引數好好研究一下

2樓:

你好,我檢查了,寫法沒問題。應該是你的disc函式,出現了問題,或者除了0,或者其他。

其中,也提一些修改建議:

syms phia thetaa;這句不需要,matlab不需要定義。

儲存為陣列方法:

function lengthp= workspace11(il,ia,ia0)

global l a a0;

l=il;

a=ia;

a0=ia0;

flag=1

for phia=0:18:90

for thetaa=0:18:90

lengthp(flag)=disc11(phia,thetaa);

endflag=flag+1;

endend

函式名字建議不採用matlab敏感的名字,disc,workspace都是matlab自有的。

希望對你有幫助。

matlab中怎麼輸出乙個變數的值?

3樓:羊聽雲袁鶯

回答我想到了~functionx=myout(a,b,c,d)symsx;symst;x=a*cos(b*t)+c*sin(d*t);你打下myout(,,

,)試試~保證你滿意~答案

::請教如何實現輸出的表示式中帶有命令,比如y=

-normcdf(x):::::::::::::::::::請參考以下相關問題:::::::::::::::::::::::::::::::::::::::請參考以下相關問題::::::::::::::::::::

matlab將乙個函式表示式定義成函式:::::::::::::::::::請參考以下相關問題::::::::::::::::::::如何用matlab畫函式圖象並輸出函式表暢頂扳僱殖概幫誰爆京達式:::::::::::::::::::

請參考以下相關問題::::::::::::::::::::擬合之後怎麼把因變數的值和擬合的函式表示式輸出來matlab:::::::::::::::::::請參考以下相關問題::::::::::::::::::::

用matlab求函式表示式答案

::電腦沒那麼聰明的~小改一下if(a==

&c==

)fprintf('x=

')elseif(a==

追問這個我也想到了,只是實際函式不止abcd這幾個係數,我覺得挺麻煩的你說電腦沒那麼聰明,意思就是matlab不能實現直接輸出函式表示式是吧~就不能我把係數、自變數都設定清楚,然後通過某種機制直接輸出嗎?

4樓:龍之卉萊悌

在matlab中,可以使用sprintf來格式化輸出變數。

matlab的sprintf用法幾乎和c中的printf一樣,引數都是printf(format,a,...)

matlab的sprintf會返回乙個字串,當不使用分號;時,可以直接在螢幕輸出。

matlab的sprintf語法為[s,

errmsg]

=sprintf(format,

a,...)

可以把矩陣a做資料格式的轉換,格式就是format引數。

例子:str

=[65

6667

pi];

sprintf('%s

%f',

str)

可得:ans

=abc

3.141593

5樓:沙曉曼冼荏

你可以將a

=[1,2,3,4,5,6]

賦值給b,即b

=[1,2,3,4,5,6]

然後a=

strvcat(『變數a的值為:』,num2str(b));

matlab中怎麼輸出乙個變數的值

6樓:昱婷漫步

最簡單的方式是以變數名為語句,且不加分號,如a=magic(3);則語句

a執行結果是在命令列視窗輸出:

a =8 1 6

3 5 7

4 9 2

7樓:安可丶摘星辰

你可以將a = [1,2,3,4,5,6] 賦值給b ,即 b = [1,2,3,4,5,6]

然後a = strvcat(『變數a的值為:』,num2str(b));

8樓:虎牙姑娘

在matlab中,可以使用sprintf來格式化輸出變數。

matlab的sprintf用法幾乎和c中的printf一樣,引數都是printf(format,a,...)

matlab的sprintf會返回乙個字串,當不使用分號;時,可以直接在螢幕輸出。

matlab的sprintf語法為[s, errmsg] = sprintf(format, a, ...)

可以把矩陣a做資料格式的轉換,格式就是format引數。

例子:str = [65 66 67 pi];

sprintf('%s %f', str)可得:ans =

abc 3.141593

9樓:匿名使用者

回答我想到了~functionx=myout(a,b,c,d)symsx;symst;x=a*cos(b*t)+c*sin(d*t);你打下myout( , , , )試試~保證你滿意~答案 ::請教如何實現輸出的表示式中帶有命令,比如y= -normcdf(x):::::::::::::::::::請參考以下相關問題:::::::::::::::::::::::::::::::::::::::

請參考以下相關問題::::::::::::::::::::matlab將乙個函式表示式定義成函式:::::::::::::::::::請參考以下相關問題::::::::::::::::::::

如何用matlab畫函式圖象並輸出函式表暢頂扳僱殖概幫誰爆京達式:::::::::::::::::::請參考以下相關問題::::::::::::::::::::擬合之後怎麼把因變數的值和擬合的函式表示式輸出來matlab:::::::::::::::::::

請參考以下相關問題::::::::::::::::::::用matlab求函式表示式答案 ::電腦沒那麼聰明的~小改一下追問這個我也想到了,只是實際函式不止abcd這幾個係數,我覺得挺麻煩的你說電腦沒那麼聰明,意思就是matlab不能實現直接輸出函式表示式是吧~就不能我把係數、自變數都設定清楚,然後通過某種機制直接輸出嗎?

10樓:心優優

1、很簡單啊. 2、比如我們輸出乙個函式f=a*sin(x)-b*exp(c*x)這種表示式,a,b,c是你輸入的任何引數. (1)你寫上如下**的m檔案 function f=dispf(a,b,c) syms x; f=a*sin(x)-b*exp(c*x); end (2)現在你直接在命令視窗輸入命令dispf就可以

11樓:匿名使用者

matlab中,有資料擬合工具箱,可在命令視窗輸入cftool開啟,將資料匯入後,裡面提供了多種擬合函式,如多項式、exp、 角函式等等,並繪圖顯示擬合結果

matlab 函式的乙個輸入變數是另乙個函式

12樓:匿名使用者

可以,比如你將第二個的function a=example(f,g,h.....)......

輸入給function [a,b]=example(c,d,e...)....

的c,只需要,再第二個變形成

function [a,b]=example(a,d,e...)....

是的簡單的將第乙個函式值賦值給c,就這個意思

還有另一種情況的函式裡面帶入函式,即控制代碼

比如現在我們定義h=@sin,現在h可以當sin用了

比如h(pi/6)=sin(pi/6)

然後,,,將h帶入另乙個函式,比如

cos(h(pi/6))

或者帶入某些特定函式,要求特定格式的函式

比如fminsearch

這個函式是用來求某乙個多元函式,在某乙個點附近的最小值及最小值所在的點的x值

比如f(x)=x1+x2

現在我們求這個函式在(0,0)附近的最小值及最小值所在的點的x值

用法是(特定格式)

[x,fval]=fminsearch(@(x) f(x) [0,0]) 表示求這個函式f(x)以x為自變數 ,在點(0,0)附近的最小值及最小值所在的點的x值

執行結果是

x=這個就不算了,,,

fval=這個也不算了。。。這個表示這一點的函式值

13樓:

好像 不能吧,你可以這樣寫,不過matlab會把這個輸入當字串 而不會真的去執行example2

例如你有function [a,b]=example(c,d,e...)

有function a=example2(f,g,h.....)你可以寫[a,b]=example(example2,d,e...)但有可能會出錯,example2在這裡就變成了原來的c,只是乙個變數,不是example2這個函式本身

14樓:

可以啊,比如ode45之類的都可以以函式作為引數,傳入引數的時候前面要加上@

老版本的matlab是用函式名傳入引數的

func(@example) func('example')你看看對應函式的**就理解了

matlab中怎麼利用for迴圈操作函式?

15樓:劉復民

syms x;

m=1;

for k=1:5

ym=cos(m*x);

m=m+1;end

MATLAB中如何用for迴圈將結果代入矩陣中

推薦的做法是 1.如果每次迴圈產生等長的行向量,就把每次產生的行向量作為矩陣的一行,行標就是當前迴圈數 2.如果每次迴圈產生的向量不等長,就把每次產生的行向量作為cell陣列的一個元素,下標就是當前迴圈數。 終瀅鬱淑 錯在維數不一致,看看,f的大小是1x10,那麼w的維數也是1x10,而a,b,c的...

matlab將數值計算結果賦予矩陣

z i,1 length x1 x1方括號改成括號 然後length x1 其實可以直接用冒號 代替。matlab怎麼把乙個式子算出的好多數賦值給乙個矩陣 你的z應該是乙個3 3矩陣,應該寫作z zeros 3,3 程式修改如下 x 1 4 5 z zeros 3,3 for i 1 1 3 for...

matlab怎麼將m行n列的矩陣表示成m個一行n列的向量

使用 reshape x m,n 函式 先了解一下reshape的基本用法 簡而言之就是將矩陣x m n的新矩陣 例如 將 3 4的a矩陣 2 6的b矩陣 a 1 4 7 10 2 5 8 11 3 6 9 12 b reshape a,2,6 等價於 b reshape a 2,6 等價於 b r...