由於矩陣: - A = [0 1 2 3 4 5];
轉換數字數組轉換成字符串單元陣列
我想將其轉換成字符串單元陣列是這樣的:A = {'0' '1' '2' '3' '4' '5'};
我能夠做到這一點使用:
A = [0 1 2 3 4 5];
for i=1:6
A1{i}= num2str(A(i));
end
A1
我想以更簡單的方式做到這一點,沒有循環。
由於矩陣: - A = [0 1 2 3 4 5];
轉換數字數組轉換成字符串單元陣列
我想將其轉換成字符串單元陣列是這樣的:A = {'0' '1' '2' '3' '4' '5'};
我能夠做到這一點使用:
A = [0 1 2 3 4 5];
for i=1:6
A1{i}= num2str(A(i));
end
A1
我想以更簡單的方式做到這一點,沒有循環。
另一條線法num2str
和strsplit
:
A1 = strsplit(num2str(A))
您可以結合使用arrayfun與anonymous function:
B = arrayfun(@(x) {num2str(x)}, A);
cellfun是一點點更快,工作也未嘗不可:
B = cellfun(@num2str, num2cell(A), 'uni', 0);
最快的解決方法是這樣的solution(學分的改進版本到obchardon)
B = regexp(num2str(A), '\s+', 'split');
+1好的和快速的解決方案,但爲了兼容性和速度的原因,我建議使用'regexp'' A1 = regexp(num2str(A),'s +','split');'在我的測試中,'regexp'比「strsplit」快七倍 – serial