2015-09-21 66 views
-1

這是我的代碼:不能使用eval在Matlab

collection = cubsfantony 848 visa/mastercard, money order/cashiers checks 

temp = regexprep(collection,' ',''',''') 

%的回報

temp = cubsfantony','848','visa/mastercard,','money','order/cashiers','checks' % why? 

eval(['words = {''',temp,'''};']); 

和MATLAB的回報如下:

Error: Unexpected MATLAB expression. 

誰能幫助我?

+2

???什麼Matlab表達式是'= {''temp''};'? –

+1

@AnderBiguri顯然是一個非常意外的MATLAB表達式。難怪MATLAB不同意,它對我來說也是一個驚喜 – Adriaan

+0

你在做什麼,你爲什麼要用'eval'? – excaza

回答

3

根本沒有必要使用eval ......請不要使用它。這被認爲是不好的做法。但是,我的理解是,您想分割所有以空格分隔的字符串,並將它們放入單獨的單元格數組中。您可以輕鬆地做到這一點與strsplit,並使用空格字符作爲分割分隔符:

collection = 'cubsfantony 848 visa/mastercard, money order/cashiers checks'; 
out = strsplit(collection, ' '); 

我們得到:

>> out = strsplit(collection, ' ') 

out = 

    Columns 1 through 4 

    'cubsfantony' '848' 'visa/mastercard,' 'money' 

    Columns 5 through 6 

    'order/cashiers' 'checks'