⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtimes.m

📁 HERE IS A GOOD PSO TOOL BOX
💻 M
字号:
function r = mtimes(obj1, obj2)% GPOSYNOMIAL/MTIMES  Implements '*' for generalized posynomial objects.%sz1 = size(obj1); sz2 = size(obj2);if( sz1(2) ~= sz2(1) )  error(['Cannot multiply vectors or matrices with incompatible dimensions.'])end% multiplying two gen posynomials together (to get another gen posynomial)if( length(obj1) == 1 & length(obj2) == 1 )  % make sure that numerics are converted to monomials  if isnumeric(obj1)    obj1 = monomial(obj1);  else % check if the object can be reduced    obj1 = eval( obj1, {'' []} );  end  if isnumeric(obj2)    obj2 = monomial(obj2);  else % check if the object can be reduced    obj2 = eval( obj2, {'' []} );  end  if( ~isa(obj1,'gposynomial') && ~isa(obj2,'gposynomial') )  % if both objects where reduced (they are not generalized posynomials)  % then invoke a simpler computation    r = obj1*obj2;    return;  end  if ismonomial(obj1) % here obj2 can be a generalized posynomial    r = gposynomial(obj2);    r_terms = r.args;    % multiply general posy's terms with the monomial    for k = 1:length(r_terms)      r_terms{k} = r_terms{k}*obj1;    end    r.args = r_terms;    return;  end  if ismonomial(obj2) % here obj1 can be a generalized posynomial    r = gposynomial(obj1);    r_terms = r.args;    % multiply general posy's terms with the monomial    for k = 1:length(r_terms)      r_terms{k} = r_terms{k}*obj2;    end    r.args = r_terms;    return;  end  % combine the two posy or gposy objects as a generalized posynomial   r = gposynomial('*', {obj1, obj2});  return;end% inner product of two gen posynomial vectors (will get a gen posynomial)if( sz1(1) == 1 & sz2(2) == 1 )  r = obj1(1,1)*obj2(1,1);  for k = 2:sz1(2)    r = r + obj1(1,k)*obj2(k,1);  end  return;end% multiplying out vectors and matricesfor i = 1:sz1(1)  for j = 1:sz2(2)    r(i,j) = obj1(i,:)*obj2(:,j);  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -