How do I convert table data to double to manipulate them?

조회 수: 1,751 (최근 30일)
Fernando De Ita
Fernando De Ita 2017년 12월 2일
편집: Stephen23 2024년 6월 6일
I extract data from a table. When I retrieve an element, it is in table format, but I encounter an error when attempting to perform operations like multiplication. Is there a direct command or a series of steps to address this issue?
  댓글 수: 3
Stephen23
Stephen23 2021년 8월 25일
편집: Stephen23 2021년 8월 25일
"I extracted data from a table, when I get an element it comes as table format but when trying to make some operations like multiplication there is an error, is there any direct command or a series of steps?"
You could use TABLE2ARRAY, but by far the simplest and most efficient approach is to just use the correct indexing using curly braces to access the table content (not parentheses which returns another table, which is what you did).
The different types of indexing are clearly explained in the documentation:
Peter Perkins
Peter Perkins 2021년 11월 8일
This new example goes even further into indexing and the topic of "doing math on data stored in a MATLAB table":
It's a new-for-R2021b example, but doesn't require the latest MATLAB for anything (most anything?) it covers.

댓글을 달려면 로그인하십시오.

채택된 답변

Star Strider
Star Strider 2024년 9월 4일
편집: MathWorks Support Team 2024년 6월 5일
There are several ways you can convert or extract table data to an array. 
You can use dot notation or curly brace indexing, as described in the following documentation:
Access Data in Tables
https://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-table.html
A = T.Variables% All table data concatenated into an array A = T{:,:}% All table data concatenated into an array A = T{rows,vars}% Specified rows and variables into an array
You can also use the "table2array" function. 
A = table2array(T)
And finally, there are many operations you can perform on table data without converting it at all. For examples, see the following documentation:
Direct Calculations on Tables and Timetables
https://www.mathworks.com/help/matlab/matlab_prog/direct-calculations-on-tables-and-timetables.html
Calculations When Tables Have Both Numeric and Nonnumeric Data
https://www.mathworks.com/help/matlab/matlab_prog/calculations-when-tables-have-both-numeric-and-nonnumeric-data.html
  댓글 수: 5
Peter Perkins
Peter Perkins 2023년 9월 28일
In recent versions of MATLAB, tables and timetables support many element+wise and reduction math operations:
t1 = table([1;2;3],[4;5;6]);
sum(t1,1)
ans = 1×2 table
Var1 Var2 ____ ____ 6 15
t2 = table([7;8;9],[10;11;12]);
t1 + t2
ans = 3×2 table
Var1 Var2 ____ ____ 8 14 10 16 12 18

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

Peter Perkins
Peter Perkins 2017년 12월 19일
The answer might be as simple as something like T.Z = T.x .* T.y. Without more information, hard to tell.

Roger Breton
Roger Breton 2021년 3월 8일
편집: Roger Breton 2021년 3월 8일
It does not work for me : all I want is to be able to import a range from Excel, and all I get is a "Table" on which I can't do any operation?
  댓글 수: 3
Roger Breton
Roger Breton 2021년 3월 9일
Thank you so much for extending your kind help, Peter.
Yes, all my data is numieric, doubles, in fact. It's just that I'm totally "green" with regards to MatLab data types. I think I used the table2array function to "convert" the data. Once converted, I was able to carry my "normal" arithmetic operation. I really have to give myself the time to learn Matlab...
Stephen23
Stephen23 2021년 8월 25일
편집: Stephen23 2024년 6월 6일
If you just need a numeric matrix, why are you importing the data as a table? Use READMATRIX instead.

댓글을 달려면 로그인하십시오.


Arshey Dhangekar
Arshey Dhangekar 2021년 7월 7일
Hello I have csv data of 18 columns and want to convert into double
so instead of writing 18 str2double code how can I convert all the 18 columns in short line of code
Temp.x310_Ambient__C_ = str2double (Temp.x310_Ambient__C_);
  댓글 수: 3
Mohsin Munir
Mohsin Munir 2021년 8월 25일
I have data in excel. there are some coulmns having inputs. I want if i multiply two columns in matlab then the next column to be added in the same sheet rather than a new file in workspace. can anybody help me in this problem
Peter Perkins
Peter Perkins 2021년 11월 8일
1) Post a new question, don't ask a question in a reply to someone else's question.
2) This example may be of help for the topic of "doing math on data stored in a MATLAB table":
It's a new-for-R2021b example, but doesn't require the latest MATLAB for anything (most anything?) it covers.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

태그

제품


릴리스

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by