jinfengshi_2005 发表于 2010-8-9 10:31

如何给把矩阵的值赋值

我在编程的时候总是出现以下错误,
U=T(1):1:H(1)
U =
Columns 1 through 18
    34    35    36    37    38    39    40    41    42    43    44    45    46    47    48    49    50    51
Columns 19 through 31
    52    53    54    55    56    57    58    59    60    61    62    63    64
但是我想赋值给这样一个矩阵一行31列的矩阵,就是我下面的这行语句,但是运行的时候就出现了错误!
U(1,31)=T(1):1:H(1)
??? Subscripted assignment dimension mismatch.
请大家帮帮忙,是不是我定义错了!
===============================================
我想实现下面的语句
for i=1:372
   A(i)=T(i):1:H(i);
   end

[ 本帖最后由 jinfengshi_2005 于 2010-8-9 10:36 编辑 ]

ChaChing 发表于 2010-8-9 11:14

回复 楼主 jinfengshi_2005 的帖子

31列数据本就不能赋值给一个element!
个人水平专业有限, 建议楼主说清楚些! LZ要什麽?:@)

jinfengshi_2005 发表于 2010-8-9 11:57

不好意思,总共有372个数组,有的数组是31列,有的是40列,列数都不一样,但是行数是一样的,都是一行,我想定义372个矩阵,一个矩阵对应于一个数组,而这372个数组,每个数组的长度我也求好了,放在一个数组里面,我定义为Ft(i)=H(i)-T(i)+1,
所以当时我想这样编这个程序
===========================
for i=1:372
   U(1,Ft(i))=T(i):1:H(i);
    end
但是现在发现错了,不知道怎么编了,求楼主帮帮忙!
不知道我这样讲,清楚了没有!

[ 本帖最后由 jinfengshi_2005 于 2010-8-9 12:04 编辑 ]

ChaChing 发表于 2010-8-9 12:31

回复 板凳 jinfengshi_2005 的帖子

???
for i=1:372
   U=T(i):1:H(i);
end

jinfengshi_2005 发表于 2010-8-9 12:59

回复 地板 ChaChing 的帖子

不对啊,你这样只是把第372个的数组赋值给U啊!我要的是总共有372个数组都要啊!
chaching,还在吗?帮帮忙呢。

[ 本帖最后由 ChaChing 于 2010-8-9 15:36 编辑 ]

ChaChing 发表于 2010-8-9 15:36

不确定LZ要的, 是这个吗?
http://forum.vibunion.com/forum/redirect.php?tid=90098&goto=lastpost

jinfengshi_2005 发表于 2010-8-9 16:13

for i=1:372, s = ['U', '=','T(i):1:H(i),'], eval(s); end,
刚刚我仿照你的编了一下,好像不行么,输出来的还试第372个的数组,不好意思,麻烦你了!再次感谢!
===================================================================================
for i=1:372, s = ['U', int2str(i), 'T(i):1:H(i)'], eval(s); end
s =
U1T(i):1:H(i)
??? Error using ==> eval
Undefined command/function 'U1T'.
刚刚我又修改了一下,出现如下的错误!!

[ 本帖最后由 jinfengshi_2005 于 2010-8-9 16:36 编辑 ]

jinfengshi_2005 发表于 2010-8-9 16:44

for n = 1:372
magic_str = ['M', int2str(n),' = T(n):1:H(n)'];
eval(magic_str);
end
======================================
终于搞好了,多谢楼主!

ChaChing 发表于 2010-8-9 20:30

什么事都需细心不心急!
根据提示, 相信有能力完成的:loveliness:

jinfengshi_2005 发表于 2010-8-10 12:54

但是我觉得还是有一个问题,就是如果有个矩阵式是3行4列的,A(3,4), 然后想动态的分配给矩阵值,我简单的用下面的一个语句(这个语句只是个示意,并不正确)表达我的意思,但是不知道用Matlab怎么实现。能否帮忙一下!非常感谢!
++++++++++++++++++++++++++++++++++
for i=1:3
    for j=1:4
   A(i,j)=p(i)+h(j)
end
end
+++++++++++++++++++++++++++++++++++

ChaChing 发表于 2010-8-10 13:44

回复 10楼 jinfengshi_2005 的帖子

nRow=3; nCol=4;
for n = 1:nRow*nCol, s = ; =ind2sub(s,n);
   magic_str = ['M', int2str(n),' = p(i)+h(j)']; eval(magic_str);
end

jinfengshi_2005 发表于 2010-8-10 13:51

好的,非常感谢,我试试!

jinfengshi_2005 发表于 2010-8-10 14:26

我刚刚稍微改了一下,用你的方法运行了一下,发现还是不是我想要的结果!
nRow=3;nCol=4;
for n=1:nRow*nCol,s=;=ind2sub(s,n);
   magic_str=['M',int2str(n),'=i+j'];eval(magic_str);
   end
========================================
因为我想要的结果是输出一个矩阵A,不是A1,A2....An的,现在我想实现这种功能
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
j=1;i=1;
while f(j)<F(i)&j<19981
       p(j)=4*F(i)/ERBN(i)-(0.0117*4*F(i)/ERBN(i))*(20-51)
if abs(f(j)-F(i))/F(i)<=1
g(j)=abs(f(j)-F(i))/F(i);
   else g(j)=1;
end
j=j+1;
end
for k=j:19981
   p(k)=4*F(i)/ERBN(i);
if abs(f(k)-F(i))/F(i)<=4
   g(k)=abs(f(k)-F(i))/F(i);
   else g(k)=4;
end
end
=================================================
上面是我编的一个程序,其中是i=1的时候,而i是要从1到372中情况,而我现在想运行程序后能否得出矩阵p(372x19981)和g(372x19981),现在p和g都是1行19981列,所以现在就碰到这样一个难题了!chaching:你能帮我看看嘛,可能我写的有些乱,不好意思!
===================================================================================
我想表达的意思,下面我用程序改了一下!
for i=1:372
j=1;
while f(j)<F(i)&j<19981
       p(i,j)=4*F(i)/ERBN(i)-(0.0117*4*F(i)/ERBN(i))*(20-51)
if abs(f(j)-F(i))/F(i)<=1
g(i,j)=abs(f(j)-F(i))/F(i);
   else g(i,j)=1;
end
j=j+1;
end
for k=j:19981
   p(i,k)=4*F(i)/ERBN(i);
if abs(f(k)-F(i))/F(i)<=4
   g(i,k)=abs(f(k)-F(i))/F(i);
   else g(i,k)=4;
end
end
===========================================================

[ 本帖最后由 jinfengshi_2005 于 2010-8-10 15:08 编辑 ]

ChaChing 发表于 2010-8-10 16:12

抱歉没看清10F的问题!?
个人水平专业有限, 不能短时间看清LZ的问题! :@L
LZ是要使用2维matrix吗?
建议直接说说LZ原来的题目或问题, 或许容易了解些!

jinfengshi_2005 发表于 2010-8-10 16:39

回复 14楼 ChaChing 的帖子

是的,我想要二维的矩阵
好的,到时我把原来的题目整理出来之后,发出来,然后你再看看!
页: [1] 2
查看完整版本: 如何给把矩阵的值赋值