matlab中带swich的下标赋值维数失配
我有一个表,从中提取每列中最大的元素,以及被告在表中的位置matlab中带swich的下标赋值维数失配,matlab,Matlab,我有一个表,从中提取每列中最大的元素,以及被告在表中的位置 Max=Max(数组,[],1); 对于i=1:1 对于j=1:30 [X,Y]=find(数组==Max(i,j)); 位置(i,j)=X; 终止 结束 我想得到一个表Sample_Targets(I,j)10*30,其中根据(1-10)中(位置(I,j))的值,存储在每列中的变量是type a=[1;0;0;0;0;0;0] for i=1:1 for j=1:30 switch Locations(i,j)
Max=Max(数组,[],1);
对于i=1:1
对于j=1:30
[X,Y]=find(数组==Max(i,j));
位置(i,j)=X;
终止
结束
我想得到一个表Sample_Targets(I,j)10*30
,其中根据(1-10)中(位置(I,j))的值,存储在每列中的变量是type a=[1;0;0;0;0;0;0]代码>
for i=1:1
for j=1:30
switch Locations(i,j)
case {1}
Sample_Targets(i,j) = [1;0;0;0;0;0;0;0;0;0];
case {2}
Sample_Targets(i,j) = [0;1;0;0;0;0;0;0;0;0];
case {3}
Sample_Targets(i,j) = [0;0;1;0;0;0;0;0;0;0];
case {4}
Sample_Targets(i,j) = [0;0;0;1;0;0;0;0;0;0];
case {5}
Sample_Targets(i,j) = [0;0;0;0;1;0;0;0;0;0];
case {6}
Sample_Targets(i,j) = [0;0;0;0;0;1;0;0;0;0];
case {7}
Sample_Targets(i,j) = [0;0;0;0;0;0;1;0;0;0];
case {8}
Sample_Targets(i,j) = [0;0;0;0;0;0;0;1;0;0];
case {9}
Sample_Targets(i,j) = [0;0;0;0;0;0;0;0;1;0];
case {10}
Sample_Targets(i,j) = [0;0;0;0;0;0;0;0;0;1];
end
end
end
每次我都会遇到同样的错误:
下标赋值维度不匹配
我能做什么?您的示例变量需要是单元格类型,或者是3D数组
- 单元格:使用{}表示单元格下标,即示例_目标{i,j}
- 3D阵列:使用样本_目标(i,j,:)=[…]
注意,后一种方法是唯一可行的,因为在switch语句中,您总是分配一个大小相同的数组。如果不是这样,选项a)是唯一可能的。请提供代码,允许重现您的问题,包括初始化所有变量。这是我的朋友。