1樓:匿名使用者
% 字串替換
f2 = '((l(i)-zh)^3/(6*x1*x2)-y(i))*cos((l(i)-zh)^2/(2*x1*x2))^2'
f2 = strrep(f2,'x1','x(1)');
f2 = strrep(f2,'x2','x(2)')% 符號替換
l = [1 2]; i = 1;
y = [3 4];
syms zh x1 x2
f2 = ((l(i)-zh)^3/(6*x1*x2)-y(i))*cos((l(i)-zh)^2/(2*x1*x2))^2
f2 = subs(f2,,)
% 函式控制代碼替換
l = [1 2]; i = 1;
y = [3 4];
f2 = @(x1,x2) ((l(i)-zh)^3/(6*x1*x2)-y(i))*cos((l(i)-zh)^2/(2*x1*x2))^2
s = func2str(f2);
s = strrep(s,'x1','x(1)');
s = strrep(s,'x2','x(2)');
f2 = str2func(s)
2樓:baisiqi白
你得有矩陣x【x1,x2】
其中x1 x2 為列向量
x1=x(:,1) x2=x(:,2)否則你都沒有x,哪來的x(1),x(2)
3樓:匿名使用者
>> f2=sym('((l(i)-zh)^3/(6*x1*x2)-y(i))*cos((l(i)-zh)^2/(2*x1*x2))^2')
x1=sym('x(1)');
x2=sym('x(2)');
f2=subs(f2)
f2 =
-cos((zh - l(i))^2/(2*x1*x2))^2*(y(i) + (zh - l(i))^3/(6*x1*x2))
f2 =
-cos((zh - l(i))^2/(2*x(1)*x(2)))^2*(y(i) + (zh - l(i))^3/(6*x(1)*x(2)))
在matlab中x1=x(:,1);x2=x(:,2);是什麼意思
4樓:wayde神獸金剛
根據語境,這行**的意思是,從x這個矩陣中取出第一列賦給x1,再從x矩陣中取出第二列賦給x2。執行後x1和x2是兩個列向量,分別是x這個矩陣第一列和第二列。
解析:這是兩條語句寫在了一行上。以逗號分隔。第一句x1=x(:,1)和第二句x2=x(:,2)的語法結構是一樣的。這裡只以第一句為例。
1. 首先是開頭的x1=,這裡的=號在matlab裡面代表賦值。賦值就是把等號右邊的值複製給左邊的變數。因此x1將會得到等號右邊的東西。
2. 等號右邊是x(:,1)。
這個x在之前就已經定義過,否則單獨一句的**無法執行。按照這裡的語境,x是一個二維陣列,即矩陣。為方便講解x我自定義了一個4行4列的矩陣,以它為例子。
3. x後面的小括號是一種陣列的索引方法。陣列的索引就是取出陣列中的某一部分的操作。
假如要索引一個二維陣列,括號裡就要有兩個引數(行號和列號)。引數之間用逗號分隔。比如x(3,4)表示取出矩陣x第三行第四列的那個數。
在例子中是12。
4. 如果要索引陣列的一片區域,可在行或列引數裡用開始的行號:結束的行號這種格式表示要取連續的行或列。
如x(1:3,3:4) 就表示取出第1行到第3行並且還是第3列到第四列相交的一片區域,這樣取出的是一個小矩陣。
5.重點:如果只要取出一列,就不用限定行。
因此在行的引數一欄開始和結束行號都不寫,只留下一個冒號,來表示所有行都要保留。於是就有了這種寫法x(:,4)。
表示取出第四列。得到的是一個列向量。類似的,x(4,:
)則表示第四行。
6. x1=x(:,1);x2=x(:
,2); 連起來效果就是可以得到兩個列向量。加了分號的命令可以寫在一行而且沒有任何輸出。你可以只輸入x1回車檢視x1的值,也可以到工作空間視窗雙擊檢視變數。
最終執行結果如下:
mathworks是開發matlab的公司,mathworks中國上的matlab文件具有權威性。遇到不會的問題可以查閱官方文件。
5樓:導超
首先,x是一個矩陣,可以是方陣,也可以不是;
y=x(:,i)的作用就就是把矩陣x的第i列取出來賦值到y裡面,那麼得到的y就是一個列向量。
給你舉個例子;
a =2 3 4 53 4 5 6
4 5 6 7
5 6 7 8
>> x1=a(:,1)
x1 =23
45>> x2=a(:,2)
x2 =3456
matlab中怎樣對多元函式如x(1)x(2)求偏導 10
6樓:匿名使用者
syms x1 x2
f=x1.^2+x2.^2;
diff(f,x1)
幹嘛寫成陣列形式? 又不是特別大量
唉,真是會給自己找麻煩
我嘗試過了, 不可以對x(i)形式取導
可以妥協一下該成下面的形式
x=sym('[x1, x2]');
f=x(1).^2+x(2).^2;
diff(f,x(1))
matlab 中,如何對符號函式 f(x1,x2,x3) 中的符號變數賦值,其中 x1=0:0.01:0.2;x2=0:0.01:0.4;x3=1-x1-x2;
7樓:匿名使用者
用subs,先代bai換一個量,du再用for迴圈代換另一個量,zhi可以解決在
dao符號函式裡沒有版
點乘點除點冪的問題:權
syms x1 x2 x3;
x3 = f(x1,x2);
x1 = [0:0.01:0.2];
x2 = [0:0.01:0.4];
[xx,yy] = meshgrid(x,y);
z = subs(x3,x1); %先把x3表示式中的x1換為[0:0.01:0.2]向量
zz = ;
for i = 1:length(x2)
zz = [zz;subs(z,x2(i))]; %再依次把x2的每一個數代進去
end %迴圈完zz是一個矩陣,列數為x1的長度,行數為x2的長度mesh(xx,yy,zz); %畫3維圖形
8樓:匿名使用者
x1=0:0.01:0.2;
x2=0:0.01:0.4;
x=-200:0.3:200;
y=-200:0.1:200;
[x1,x2]=meshgrid(x1,x2);
x3=1-x1-x2;
mesh(x1,x2,x3)
x1=x(1:2:end)在matlab中什麼意思
9樓:匿名使用者
表示x1是從矩陣x的第1個數開始取起,間隔為2,一直取到最後一個數。
例如x=[1 2 3 4 5 6]
那麼x1=[1 3 5]
x 1 x 2的不定積分,1 x 1 x 2的不定積分
分開嘛左邊是lnx,右邊令x sint,則 1 x 2dt cost 2dt cos2t 1 2dt 所以1 x 1 x 2的不定積分是lnx sin2t 2 x 2 c c為常數 令a 1即可,原式 1 2 arcsinx 1 2 ln x 1 x c 左邊是lnx,右邊令x sint,則 1 x...
3x 3 a 2x滿足對於任意的x1,x2屬於都有f x1 f x21恆成立,求a的取值範圍
f x1 f x2 1 3 x1 x2 x1 2 x1 x2 x2 2 a 2 x1 x2 1 3 x1 x2 x1 2 x1 x2 x2 2 3a 2 f x1 f x2 1 則 1 3 x1 x2 x1 2 x1 x2 x2 2 3a 2 1 x1 x2 x1 2 x1 x2 x2 2 3a 2...
已知X1,X2是方程X的平方加3X加1的兩實數根,求X1的三次方加8X2加20的值
你好,yh3110088 解 x1,x2分別是方程x 3x 1 0的兩個實數根 x1 3x1 1,由韋達定理,可知 x1 x2 3 x1 8x2 20 3x1 1 x1 8x2 20 3x1 x1 8x2 20 3 3x1 1 x1 8x2 20 9x1 3 x1 8x2 20 8x1 8x2 23...