两者区别
乘是矩阵的运算,点乘是矩阵中元素的运算。
点乘就是 每个元素逐点运算,这就要求两个矩阵行列数相同;
单纯的乘就是矩阵乘运算
a*b表示矩阵a与矩阵b进行矩阵相乘。
a.*b表示矩阵a中的元素与矩阵b中的元素按照相同位置进行相乘,得到的结果作为新矩阵中相同位置的元素。
而一个数如 8.*A就是代表8乘以矩阵中的每一个元素。
代码
syms a b c v t
kesi=0;
for i=1:n-1
Z1(i+1)=c*Y1(i)+(1-c)*Y1(i+1);
end
for i=2:n
Y(i)=(Y1(i)-Y1(i-1))/(X1(i)-X1(i-1));
end
Y;
%% 为应用最小二乘法,构建一个平方和函数
f=0;
for i=2:n
f=f+(Y(i)+a*b*(X1(i)-v)^(b-1)*Z1(i)-a*b*(X1(i)-v)^(b-1))^2;
end
%求f对a和b的偏导数
df_a=diff(f,a);
%求偏导数=0的的点(以a为未知数)
a=solve(df_a,a)
F=1-exp(-a*(t-v)^b)
s=0;
for i=1:n
W(i)=subs(F,t,X1(i));
s=s+(W(i)-Y1(i))^2;
end
s = char(s);
字符串下将乘转成点乘
a=vectorize(newStr);
符号表达式下将乘转成点乘
fun = matlabFunction(fun);
符号表达转字符串
s = char(s);
字符串转符号表达式
s =eval(a);