How to assign strings and numbers to elements of the same matrix?
48 ビュー (過去 30 日間)
古いコメントを表示
I want to write the word "average" in the 5 element, first row on my matrix and I want to write numbers 1 to 3 into the second to fourth elements. But I am using wrong syntax:
ResultMtx(2:5,1) = [1; 2; 3; "average"];
How can I write this correctly? Thank you.
0 件のコメント
採用された回答
Walter Roberson
2021 年 9 月 9 日
[1; 2; 3; "average"]
The first part of that, the 1; 2; 3, is establishing a numeric array -- in particular a double precision array.
The last part of that, the "average", is a string() scalar.
MATLAB cannot store string() scalars inside a numeric array. MATLAB numeric arrays do not store the datatype of each element separately: numeric arrays only store a single datatype that applies to the entire array.
You can create a cell array,
ResultMatx = num2cell(ResultMatx);
ResultMatx(2:5,1) = {1; 2; 3; "average"};
cell arrays can have a different datatype for each element. But you might not like the formatting for displaying them.
3 件のコメント
Walter Roberson
2021 年 9 月 9 日
I recommend you use cell arrays, and use writecell(), provided that your MATLAB is new enough to have writecell()
data = randi(9, 6, 1)
datacell = num2cell(data);
datacell{end-1,1} = "average";
datacell{end,1} = mean(cell2mat(datacell(1:end-2,:)))
Walter Roberson
2021 年 9 月 9 日
You could also use a numeric array and put NaN values, and then later ask to writecell into that particular location in the existing table. This is not efficient, as it requires a separate writecell() for each text written into an otherwise numeric column (though adjacent items could be merged into one call.)
その他の回答 (1 件)
Steven Lord
2021 年 9 月 9 日
Do you need your data stored with mixed-type columns or would mixed-type rows work? If the latter, consider a table array.
ResultTbl = table(1, 2, 3, "average")
scores = ResultTbl{1, 1:3}
assessment = ResultTbl.Var4
2 件のコメント
Walter Roberson
2021 年 9 月 9 日
If I understand correctly, user is looking to store the results into Excel, not unlike the way it is common for people to have spreadsheets that say things like
Jan 5
Feb 2
Mar -4
Apr 7
total ====
10
Hassan Bahy
2021 年 11 月 20 日
mr Walter Roberson could you help me to create a table consist of multi rows with two column the first column from data type string & second column is numbers, could you help me sir,please
参考
カテゴリ
Help Center および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!