標籤:

matlab把數值數組轉成分立的字元組成的元胞數組?

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 |