声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1080|回复: 2

[编程技巧] 胞元数组向数值数组转化过程中遇到的问题

[复制链接]
发表于 2007-11-19 18:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我现在碰到一个问题,我的问题简化后如下:
C{1,1}=[1,2];
C{1,2}=[2,3
             4,5
             6,7];
C{1,3}=[3,1
             2,4
             4,5
             7,8
             9,2];
C{1,4}=[1,3
             3,5];

C的每个胞元为m*2的矩阵(m是变化的),我想把C转换成如下M*2N的数值数组:
A=[1  2     2  3     3  1     1   3
      0  0     4  5     2  4     3  5
      0  0     6  7     4  5     0  0
      0  0     0  0     7  8     0  0
      0  0     0  0     9  2     0  0
A的行数M由胞元数组中行数最大的胞元元素决定
A的列数由胞元数组的元素列数N*2决定(均为两列)

要求不用循环,大家有没有什么好的方法?
回复
分享到:

使用道具 举报

发表于 2007-11-19 20:36 | 显示全部楼层
%若为c{1,k}则如下可以达到要求,但有循环
lie=[];a=[];
for m=1:k
   lie=[lie size(c{1,m},1)];
end
maxlie=max(lie);
for m=1:k
a=[a [c{1,m};zeros(maxlie-lie(m),2)]];
end

评分

1

查看全部评分

 楼主| 发表于 2007-11-20 09:57 | 显示全部楼层
非常感谢donkeyxu兄的回复,我也考虑过用循环,但是,当C较大时,效率肯定是要受到限制的。你的方法我会参考的!
再次感谢你的热心相助!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 07:58 , Processed in 0.070169 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表