How to upload an array of double in postgreSQL?

7 Ansichten (letzte 30 Tage)
Struggling in MATLAB
Struggling in MATLAB am 17 Jul. 2022
Beantwortet: Ramtej am 6 Sep. 2023
I have a table in which different columns contain different types of data. I want to upload the table to postgreSQL database. I am having trouble with uploading the columns where datatype is cell. If I convert them to string or double(cell2mat) it's still not working. Here is my code:
datasource = 'live_database';
conn = database(datasource,'postgres','1234');
loadfile = load("Outputs1to70974.mat");
data = loadfile.allOutputs;
data.id = string(data.id); %1
data.subjectid = string(data.subjectid); %2
data.trialname = string(data.trialname); %3
data.date = string(data.date); %4
data.logical_out = string(data.logical_out); %5
data.run_time = cell2mat(data.run_time); %6
data.reaction_time = cell2mat(data.reaction_time); %7
data.average_position = cell2mat(data.average_position); %8
data.position_when_offered = cell2mat(data.position_when_offered); %9
tablename = "toytable";
sqlwrite(conn,tablename,data);
The sqlwrite documentation says numeric array type should is valid to upload on database, but seems like it's not working for me. How should I troubleshoot?

Antworten (1)

Ramtej
Ramtej am 6 Sep. 2023
Hi,
I can see that "data.average_position" is a numeric matrix of size (10,2). You cannot insert an array of multiple columns into a single column in the database.
Create two separate columns for 'x' position data and 'y' position data, and upload them to the database.
%%
data.average_position = cell2mat(data.average_position);
data.avg_Xposition = data.average_position(:,1); % array of avg x postition values
data.avg_Yposition = data.average_position(:,1); % array of avg y postition values
data.average_position = [] % clear the old position matrix
%% follow the above routine for all the applicable columns
Hope this resolves your query!

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by