作者par4322 (lana)
看板MATLAB
标题[讨论] MATLAB回圈问题
时间Tue Sep 29 20:40:08 2015
各位好:
虽然摸了Matlab一阵子了
但还是不太会写回圈的式子
目前有一个问题,想请各位帮忙><
假设A~E区,有出现左边物品者,即判别为TRUE,如下:
数字矩阵X(4*5)与文字档为Y(4*1)
| A B C D E
---------------------------
apple | 0 0 0 0 0
banana| 0 0 1 0 1
cat | 0 0 1 1 1
dog | 1 1 1 0 0
(一)
若要将他改写成,物品名称出现在对应区域(如下),该如何写?
A B C D E
-------------------------------
0 0 0 0 0
0 0 banana 0 banana
0 0 cat cat cat
dog dog dog 0 0
我的想法是
我先找出判断式为1的矩阵位置 >>[i,j] = find(X==1);
接着制造一个4*4的文字档矩阵 >>X2=repmat(X,[4;1]);
然後利用回圈将判断式出现0的文字改为0,为1的的放入文字,但就卡住了...
if ... = [i;j]
k2=X2(i,j);
else
k2=0;
end
(二)
又或者是改写成每个区域对应有出现的物品种类(如下),这样又该如何写?
A:dog
B:dog
C:banana,cat,dog
D:cat
E:banana,cat
想了(一)好久好久,但还是想不出来QQ,最後连(二)都放弃了...
麻烦各位大大了
谢谢><
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.194.199.180
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1443530411.A.45D.html
1F:→ danndann: Y2=repmat(Y,[1,5]); Y2(X==0)={'0'}; 09/30 13:44