2015-05-06 29 views
3

我使用的單元陣列一個值爲像下面問題與單元陣列的strcmp功能

a = {'one' , 'two' ; 'four','five'};

現在我只是喜歡「二」和一些字符串比較一個之後我只是在一個添加另一列,並在該位置插入字符串

a{strcmp(a,'two'),3} ='Three' ; 

我越來越像輸出下面

a = 

    'one'  'two'   [] 
    'four' 'five'   [] 
     []  [] 'Three' 

但實際上我想輸出類似下面

a = 

    'one'  'two'  'Three' 
    'four' 'five'   [] 

我怎樣才能做到這一點?

+1

您能得到什麼,如果你只需要輸入'STRCMP(一, '兩節')'在命令行?提示:閱讀[linear indexing](http://blogs.mathworks.com/steve/2008/02/08/linear-indexing/),並嘗試'for ii = 1:4 disp(a { }} end' – Dan

+0

我越來越喜歡這個** strcmp(a,'two')= [0 1; 0 0]; ** –

+0

哦,我以爲你會得到'3',但忘記了你需要先爲那個 – Dan

回答

2

您是否考慮過使用maps來完成您的任務?

%// create map 
keySet = {'one', 'two', 'three', 'four', 'five', 'six','seven','eight'}; 
valueSet = [1, 2, 3, 4, 5, 6, 7 ,8]; 
mapObj = containers.Map(keySet,valueSet); 

%// data 
a = {'one' , 'two' ; 'four', 'five'}; 

%// analyze data 
Nums = cell2mat(values(mapObj,a)); 

%// expand data 
Nums(:,3) = Nums(:,2) + 1 

%// output 
output = keySet(Nums) 

output = 

    'one'  'two'  'three' 
    'four' 'five' 'six'