html连续自动数组值赋给按钮值,HTML语言批量将一个向量赋值给单元数组.

本帖最后由 kaaaf123 于 2014-11-11 19:26 编辑

有些东西你还是没有搞明白

['

',num2cell(a), '
']

这个东西的结果本身是一个1x5的cell,这个你自己执行下就知道了:

a = 1:3;

>> c = ['

',num2cell(a), '
']

c =

'

所以相当于你把5个东西赋值给b(:,1),而b(:,1)是三个位置,所以报错告诉你不匹配

而你原本的赋值是:

b(:,1)=num2cell(a)

左边b(:,1)是三个位置,右边num2cell(a)同样是三个,所以赋值没有问题

况且从你后边的循环可知,先不说赋值,首先这里的c就不是你要的样子,你要的应该是三个字符串

我已经说过几遍:这里num2cell(a)结果不是字符串,所以不能和字符串直接连接组成整体,组成的结果只会像上边的c那样,字符串和数字是分离的,不是你要的结果。只有字符串和字符串才能组成一个字符串,这也就是为什么你后边的循环是正确的:是因为num2str(a(i),'10.4d%')的结果是字符串(这里顺便说一句,num2str属于高级函数,性能比较低,如果追求性能建议还是尽量用低级函数实现,例如sprintf)

如果你要“使用向量化的思想来批量为b的第一列赋值.”,可以用一个matlab的辅助函数sprintfc:

A = cell(5,2);

b = 1:5;

A(:,2) = sprintfc('第%d行',b)

得到:

A(:,2) = sprintfc('第%d行',b)

A =

[]    '第1行'

[]    '第2行'

[]    '第3行'

[]    '第4行'

[]    '第5行'

建议你查找代码问题的时候最好分步查找,把能拆开的步骤都拆开来看,例如,你如果愿意单独看一下:

['

',num2cell(a), '
']

到底是什么,即使不知道怎么改,你也会发现这个东西的结果根本就是不你要的,再继续分步,单独看一下num2cell(a)是什么,你或许就会发现这个东西根本就不是字符串,从而更深入的发现问题

这样分析会比你直接就盯着:

b(:,2)=['

',num2cell(a), '
']

??? Subscripted assignment dimension mismatch.

凭空猜测和想象来得实在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值