![]() |
Matlab中的``数组数组''?
嘿,有点麻烦。尝试将可变长度的1d数组分配给数组的不同值,例如
a(1) = [1, 0.13,0.52,0.3]; a(2) = [1, 0, .268]; 但是,我得到了错误: ??? In an assignment A(I) = B, the number of elements in B and I must be the same. Error in ==> lab2 at 15 a(1) = [1, 0.13,0.52,0.3]; 我认为这意味着它期望的是标量值而不是数组。有人知道如何将数组分配给该值吗? 我宁愿不直接将其定义为2d数组,因为它是在循环中解决不同问题的方法 [B]编辑:知道了![/B] a(1,1:4)= [1,0.13,0.52,0.3]; a(2,1:3)= [1,0,.268]; [B]回答:[/B] 你可能想写的是 a(1,:) = [1, 0.13,0.52,0.3]; a(2,:) = [1, 0, .268]; 也就是说,第一行是[1, 0.13,0.52,0.3] ,第二行是[1, 0, .268] 。这是不可能的,因为a(2,4)的值是多少? 有两种方法可以解决此问题。 (1)使用单元格数组 a{1} = [1, 0.13,0.52,0.3]; a{2} = [1, 0, .268]; (2)如果您知道解决方案将具有的最大列数,则可以预分配数组,并像这样写入结果(如果不进行预分配,则填充为零。您也可能会减慢速度如果有很多迭代,那么循环就很多了,因为每次迭代都必须重新创建数组。 a = NaN(nIterations,maxNumCols); %# this fills the array with not-a-numbers tmp = [1, 0.13,0.52,0.3]; a(1,1:length(tmp)) = tmp; tmp = [1, 0, .268]; a(2,1:length(tmp)) = tmp; [url=https://stackoverflow.com/questions/2769960]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 01:10。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.