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...