matlab把數值數組轉成分立的字元組成的元胞數組?
01-08
有
a = [1:7];現在需要變成:b = {"1", "2", "3", "4", "5", "6", "7"}
也就是說,把1 2 3 4 5 6 7變成元胞數組,每個元胞的元素是1 到 7這幾個數字的字元不知道我表達清楚沒有,我用num2cell變成元胞,但元胞內的元素是數組,不是字元請問如何實現?
可以用未公開的函數 sprintfc:
&>&> a = sprintfc("%d",1:7)
a =
1×7 cell array
"1" "2" "3" "4" "5" "6" "7"
16b 可以用新的 string 類型,string 相比 cellstr 有不少有點:
&>&> b = string(1:7)
b =
1×7 string array
"1" "2" "3" "4" "5" "6" "7"
用 num2cell 不是不能做,只不過需要先轉換為字元串:
num2cell(sprintf("%d",1:7))也可以用num2str轉換為字元串,再用 strsplit 轉換為 cell
strsplit(num2str(1:7))sprintfc 比以上方法更方便, @Falccm 已經給出了我剛開始嘗試用行向量用cellstr直接來做,後來發現並沒有達到預期的效果,但後面驚喜地發現改成用列向量就順利做到了。
a = (1:7)";
b = num2str(a);
c = cellstr(b)"
c =
"1" "2" "3" "4" "5" "6" "7"
推薦閱讀:
※初學matlab需要什麼基礎嗎?
※matlab2016b打開m文件的問題?
※MATLAB中內置了哪些函數是本科生常用的?
※怎樣做批量函數擬合?
※零基礎學matlab,需要哪些基礎知識?
TAG:MATLAB |