我的单元格大小为public class CounterPro {
int pn = 0; // positive numbers
int mn = 0; // minus numbers
int nn = 0; // neutral numbers
int sum = 0; // sum
String r; // result
int i = 0;
public String sumAll(int[] array){
while(i < array.length){
sum += array[i];
if(array[i]==0){
nn += 1;
}
i+=1;
}
pn = (array.length - nn + sum)/2;
mn = (array.length - sum -nn)/2;
if(pn > mn && pn > nn){
r = "woaa lost of positive 1";
}
else if(mn > pn && mn > nn){
r = "woaa lost of minus 1";
}
else {
r = "woaa lost of neutral numbers";
}
return r;
}
,另一个单元格大小为B = 36*3969
。我想分配值s = 36*55
。但是我收到以下错误。
s{:,1} = B{:,2048} s{:,2} = B{:,2049} s{:,3} = B{:,2049} and so on
以下是代码部分。
The right hand side of this assignment has too few values to satisfy the left hand side.
Error in group (line 22)
s{:,a} = B{:,i};
修改
您可以找到文件here
答案 0 :(得分:1)
B{:,i}
将返回以逗号分隔的列表,即它的输出数量等于B
的行数。同样适用于s{:,a}
。赋值运算符不允许您一次将多个输出分配给多个输入。在这种情况下,您应该使用常规括号:
s(:,a) = B(:,i);
答案 1 :(得分:0)
raw = rand(142884,1);
B = reshape(raw, 36, 3969);
C = mat2cell(B,ones(36,1),ones(3969,1));
s = cell(36,55);
然后将一列C分配给s use()运算符
s(:,1) = C(:,2048);
由于我不知道B中的实际内容,我无法对其进行全面测试。我想成功将取决于B中的内容。