MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 570|回复: 7|关注: 0

[已解决] 元胞数组赋值的问题

[复制链接]

新手

9 麦片

财富积分


050


4

主题

7

帖子

0

最佳答案
我有一系列数Rib1 Rib2 ......Rib100,想赋值给一个100*1的元胞数组。我用Rib=sym('Rib',【1,100】)生成Rib1 Rib2......Rib100,
用cell(100,1)生成元胞数组。
现在想把Rib1赋值给cell(1,1),Rib赋值给cell(2,1)......Rib100赋值给cell(100,1),不知道怎样处理。我尝试用下面这种办法,以循环5次为例


clear all;clc
A=cell(5,1);
Rib=sym('Rib',[1,5]);
for i=1;5
    A{i,1}=sym('Rib')
end

输出结果是
A =

    [1x1 sym]
    []
    []
    []
    []

只有cell(1,1)被赋值,但是也不是我希望得到的Rib1,请各位指教。而且,如果这里的Rib是矩阵的话,怎样通过赋值创建100个不同的Rib矩阵呢,请各位一并指教,谢谢。

论坛优秀回答者

权威

3518 麦片

财富积分



19

主题

3745

帖子

758

最佳答案
  • 关注者: 314
发表于 2017-5-15 10:50:22 | 显示全部楼层 |此回复为最佳答案
A=cell(5,1)
Rib=sym('Rib',[1,5])
for i=1:5
    A{i,1}=Rib(i)
end

新手

9 麦片

财富积分


050


4

主题

7

帖子

0

最佳答案
 楼主| 发表于 2017-5-15 11:10:53 | 显示全部楼层
wuyou136 发表于 2017-5-15 10:50
A=cell(5,1)
Rib=sym('Rib',[1,5])
for i=1:5

谢谢,这样做可以给cell(5,1)赋值,但是得到的是
A =

    [1x1 sym]
    [1x1 sym]
    [1x1 sym]
    [1x1 sym]
    [1x1 sym]
如果想让每个元素显示Rib(i)怎么做呢

论坛优秀回答者

权威

3518 麦片

财富积分



19

主题

3745

帖子

758

最佳答案
  • 关注者: 314
发表于 2017-5-15 11:12:32 | 显示全部楼层
wangxin501 发表于 2017-5-15 11:10
谢谢,这样做可以给cell(5,1)赋值,但是得到的是
A =

A{1} A{2} ...

新手

9 麦片

财富积分


050


4

主题

7

帖子

0

最佳答案
 楼主| 发表于 2017-5-15 11:31:48 | 显示全部楼层

好的 我明白了 谢谢

MATLAB 基础讨论
版块优秀回答者

入门

193 麦片

财富积分


50500


3

主题

303

帖子

42

最佳答案
  • 关注者: 2
发表于 2017-5-15 11:49:39 | 显示全部楼层
用循环很慢的,可以直接用
  1. A=num2cell(Rib)
复制代码

论坛优秀回答者

权威

3518 麦片

财富积分



19

主题

3745

帖子

758

最佳答案
  • 关注者: 314
发表于 2017-5-15 11:52:26 | 显示全部楼层
杰孑捷 发表于 2017-5-15 11:49
用循环很慢的,可以直接用

其实如果你查看一下 num2cell 的源代码,会发现它也是用的循环

新手

34 麦片

财富积分


050


14

主题

88

帖子

3

最佳答案
  • 关注者: 1
发表于 2017-5-15 15:05:36 | 显示全部楼层
本帖最后由 tangxingyi 于 2017-5-15 15:09 编辑

you just need to type
  1. celldisp(A)
复制代码
to show the cell elements.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

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