Invalid rhs Error When Sending 2D Array to Production Server

3 views (last 30 days)
Hi, I am attempting to send a simple 2D array to a function I have deployed on production server that expects a single input argument. I have the following JavaScript code (mostly copied from these docs (https://www.mathworks.com/help/mps/restfuljson/postasynchronousrequest.html)):
var data = JSON.stringify({
rhs: track,
"nargout": 1,
"outputFormat": {"mode": "large","nanType": "object"}
});
console.log(data);
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:9910/finalAnalysis/analysisV1");
xhr.setRequestHeader("content-type", "application/json");
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.send(data);
Where track is the array I want to send to the server.
Please note I have also attempted wrapping the track argument in brackets like so: rhs: [track], however I still get the same following error:
analysis.js:91 POST http://localhost:9910/finalAnalysis/analysisV1 400 (InvalidInputArgs Invalid rhs. (request id=0:134:7))
I've looked around the docs and I'm having difficulty figuring out how to properly format my rhs to solve this error. Can someone help me?

Accepted Answer

Zachary Khan
Zachary Khan on 25 Sep 2021
I figured out the issue I was having. For anyone who is wondering, the track array I was passing in was an array of string values, when it needed to be an array of actual numbers, so I converted each of the strings to numbers using Number() in JavaScript. Here's the nested loop I wrote to do this, don't know if it's the best way but it works:
let track = new Array(trackStr.length);
for (i = 0; i < trackStr.length; i++) {
track[i] = new Array(trackStr[0].length); // Initialize an empty array of the correct dimensions
}
for (j = 0; j < trackStr[0].length; j++) {
for (i = 0; i < trackStr.length; i++) {
if (trackStr[i][j]) { // Check that this array index has a value that exists
track[i][j] = (Number(trackStr[i][j])); // Insert the numerical version of the string into the same position in the empty array. (Note Number method is used because it handles scientific notation values too)
}
}
}

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!