[已答复] 为什么我输出的不是矩阵

[复制链接]
施文哲 发表于 2014-11-16 18:32:00
为什么我输出的不是矩阵,源码如下KP输出的为什么不是矩阵
A=ones(a,b);
for kk=1:a
    ind=randperm(b,3);%b列中随机3个为零
    A(kk,ind)=0;
end
A1=A;
KP=[];
KP=[1:size(A1,2):sum(~A1)];
KP

6 条回复


格调蓝山 发表于 2014-11-16 18:35:03
这个是colon(:)的作用,意思是生成从1到sum(~A1)间隔为size(A1,2)的数列,所以 请想清楚你要输出什么

施文哲 发表于 2014-11-16 18:36:38
格调蓝山 发表于 2014-11-16 18:35
这个是colon(:)的作用,意思是生成从1到sum(~A1)间隔为size(A1,2)的数列,所以 请想清楚你要输出什么 ...

我想要把[1:size(A1,2):sum(~A1)]这个结果赋值到一个矩阵中

格调蓝山 发表于 2014-11-16 18:39:17
施文哲 发表于 2014-11-16 18:36
我想要把[1:size(A1,2):sum(~A1)]这个结果赋值到一个矩阵中

那现在就是实现的这个功能啊 你不是把【1:size(A1,2):sum(~A1)】赋值到KP中了么 重点是 【1:size(A1,2):sum(~A1)】是不是你想要的结果

施文哲 发表于 2014-11-16 19:00:04
格调蓝山 发表于 2014-11-16 18:39
那现在就是实现的这个功能啊 你不是把【1:size(A1,2):sum(~A1)】赋值到KP中了么 重点是 【1:size(A1,2):s ...

重点是我直接在command中输入这个语句,不赋值的话是输出的是一个矩阵,写在现在这种情况下就不行了啊,你跑过了吗

winner245 发表于 2014-11-16 19:42:38
施文哲 发表于 2014-11-16 19:00
重点是我直接在command中输入这个语句,不赋值的话是输出的是一个矩阵,写在现在这种情况下就不行了啊, ...

得不到矩阵的问题,我在你上一个帖子里已经解答过了
另外,你这里还犯了另一个错误,循环部分你是要对每列随机分配3个0,应该写成:

for kk=1:b
    ind=randperm(a,3);%b列中随机3个为零
    A(ind,kk)=0;
end

格调蓝山 发表于 2014-11-16 22:00:27
施文哲 发表于 2014-11-16 19:00
重点是我直接在command中输入这个语句,不赋值的话是输出的是一个矩阵,写在现在这种情况下就不行了啊, ...
  1. a=5;b=4;
  2. A=ones(a,b);
  3. for kk=1:a
  4.     ind=randperm(b,3);%b列中随机3个为零
  5.     A(kk,ind)=0;
  6. end
  7. A1=A;
  8. KP=[];
  9. KP=[1:size(A1,2);sum(~A1)];
  10. KP
复制代码

第二个是分号不是冒号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表