Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-09-17
年龄: 40
帖子: 1
声望力: 0 ![]() |
![]()
少量的符号变量可以如下定义:
syms x1 x2 但是如果我要定义上百个符号变量呢? 请问如何定义简便 知道的麻烦告知 我的QQ是 346422821 谢谢:lovely: |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-11-30
年龄: 40
帖子: 20
声望力: 17 ![]() |
![]()
用eval
假如要生成x0....x100这一百个变量并将这一百个变量给定初值0 可以 for ii=0:100; eval(['x' num2str(ii) '=0']) end |
![]() |
![]() |
![]() |
#3 |
游客
帖子: n/a
|
![]() |
![]() |
![]() |
#4 |
游客
帖子: n/a
|
![]()
把下面程序复制到m文件Array.m 中,并把Array.m文件放在当前路径下。
function A=Array(array_name,sz) %% 要生成 50×60 符号矩阵 只要使用命令如: %% A=Array('a',[50,60]); B=Array('b',[50,60]); 等等 %% 要生成 600 符号 只要使用命令如: %% V=Array('v',600); U=Array('v',600); 等等 if length(sz)==2 for it=1:sz(1) for jt=1:sz(2) A(it,jt)=sym([array_name,num2str(it),'_',num2str(jt)]); end end elseif length(sz)==1 for kt=1:sz(1) A(kt)=sym([array_name,num2str(kt)]); end else error('Demension of Arrary should be less then 3 '); end %% Bodhitreechen (Shanghai Maritime University) 2010 6 23 |
![]() |
![]() |
#5 |
初级会员
注册日期: 2010-06-23
帖子: 3
声望力: 0 ![]() |
![]()
把下面程序复制到m文件取名为Array.m 中,并把Array.m文件放在当前路径下。
function A=Array(array_name,sz) %% 要生成 50×60 符号矩阵 只要使用命令如: %% A=Array('a',[50,60]); B=Array('b',[50,60]); 等等 %% 要生成 600 符号 只要使用命令如: %% V=Array('v',600); U=Array('u',600); 等等 %% 注意第一个输入变量必须是字符,第二个是要生成的符合矩阵或向量的 %% 规模 function [A,array_ustr,array_istr]=Array(array_name,sz) if ischar(array_name) array_name=lower(array_name); else error('It is expected that first input argument is a char array'); end if (length(sz)==2)&&(sz(1)~=1)&&(sz(2)~=1) for it=1:sz(1) for jt=1:sz(2) A(it,jt)=sym([array_name,num2str(it),'_',num2str(jt)]); end end elseif (length(sz)==1)||((length(sz)==2)&&(sz(1)==1))||((length(sz)==2)&&(sz(2)==1)) if length(sz)==1 for kt=1:sz(1) A(kt,1)=sym([array_name,num2str(kt)]); end elseif ((length(sz)==2)&&(sz(1)==1)) for kt=1:sz(2) A(1,kt)=sym([array_name,num2str(kt)]); end else for kt=1:sz(1) A(kt,1)=sym([array_name,num2str(kt)]); end end else error('Demension of Arrary should be less then 3 '); end if length(sz)==2 if (sz(1)>sz(2))&&(sz(2)==1) p=conj(A'); else p=A; end elseif length(sz)==1 p=conj(A'); end p_istr0=char(p); pre='matrix([['; newpre=''; post=']])'; newpost=''; p_istr=strrep(p_istr0,pre,newpre); p_istr=strrep(p_istr,post,newpost); p_ustr=strrep(p_istr,array_name,[array_name,'(']); p_ustr=strrep(p_ustr,',','),'); p_ustr=[p_ustr,')'];%% To make p_ustr in the form p(1),p(2),...,p(end), if arrary_name='p'. if length(sz)==2 if (sz(1)~=1)&&(sz(2)~=1) p_ustr=strrep(p_ustr,'_',','); p_ustr=strrep(p_ustr,[',',num2str(sz(2)),'),'],[',',num2str(sz(2)),')];[']); p_ustr=['[',p_ustr,']']; end end array_ustr=p_ustr; array_istr=p_istr; 此帖于 2010-07-25 20:42 被 bodhitreechen 编辑。 原因: 有更新的m文件版本 |
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[求助]请教matlab的输出格式问题 | oliver6269 | MATLAB论坛 | 2 | 2008-11-18 21:48 |
[求助]一个很简单的问题,可是就是不知道问题出在哪儿? | pikky | MATLAB论坛 | 6 | 2008-11-17 18:21 |
请教如何实现灰度图像的三维显示 | linxudong | MATLAB论坛 | 1 | 2008-11-16 15:56 |
Enhancing Multicore System Performance Using Parallel Computing with MATLAB | TechnicalArticles | MATLAB技术文章 | 0 | 2008-11-14 03:46 |
向大家请教两个问题!! | whyhzj | MATLAB论坛 | 0 | 2008-10-29 14:37 |