operator* multiply vector and adjacency matrix
I have an adjacency matrix implemented in the following way:
struct Matrix {
int m_row;
int m_col;
float m_val;
};
vector<Matrix> matrix;
I have a vector of struct that only stores the values, rows and columns if the value is different from 0. I would like to implement an operator * in which I multiplied my matrix by the vector. My resulting adjacency matrix it is the following:
Adjacency matrix , the first parameter are row, the second column and the last the value.
My vector have 10 positions and all values of this are 1.
This is my operator * (this doesn't work correctly, doesn't obtain the correct result):
vector<float> SparseMatrix::operator*(const vector<float> x) const {
vector<float> result(x.size(), 0);
for (int i = 0; i < m_Nrows; i++) //m_Nrow --> Number of rows.
{
for (int j = 0; j < m_Ncol; j++) {
result[i] += (matrix[i].m_val * x[j]);//m_Ncol --> Number of columns
}
}
return result;
}
c++ matrix vector struct adjacency-matrix
add a comment |
I have an adjacency matrix implemented in the following way:
struct Matrix {
int m_row;
int m_col;
float m_val;
};
vector<Matrix> matrix;
I have a vector of struct that only stores the values, rows and columns if the value is different from 0. I would like to implement an operator * in which I multiplied my matrix by the vector. My resulting adjacency matrix it is the following:
Adjacency matrix , the first parameter are row, the second column and the last the value.
My vector have 10 positions and all values of this are 1.
This is my operator * (this doesn't work correctly, doesn't obtain the correct result):
vector<float> SparseMatrix::operator*(const vector<float> x) const {
vector<float> result(x.size(), 0);
for (int i = 0; i < m_Nrows; i++) //m_Nrow --> Number of rows.
{
for (int j = 0; j < m_Ncol; j++) {
result[i] += (matrix[i].m_val * x[j]);//m_Ncol --> Number of columns
}
}
return result;
}
c++ matrix vector struct adjacency-matrix
2
Please post a Minimal, Complete, and Verifiable example. Also, why are you sizing theresult
vector tox.size()
, but then loop usingm_Nrows
? What ifm_NRows > x.size()
? You should always determine how far to go in a vector by usingvector::size()
, and not by some other external variable.
– PaulMcKenzie
Nov 14 '18 at 23:48
add a comment |
I have an adjacency matrix implemented in the following way:
struct Matrix {
int m_row;
int m_col;
float m_val;
};
vector<Matrix> matrix;
I have a vector of struct that only stores the values, rows and columns if the value is different from 0. I would like to implement an operator * in which I multiplied my matrix by the vector. My resulting adjacency matrix it is the following:
Adjacency matrix , the first parameter are row, the second column and the last the value.
My vector have 10 positions and all values of this are 1.
This is my operator * (this doesn't work correctly, doesn't obtain the correct result):
vector<float> SparseMatrix::operator*(const vector<float> x) const {
vector<float> result(x.size(), 0);
for (int i = 0; i < m_Nrows; i++) //m_Nrow --> Number of rows.
{
for (int j = 0; j < m_Ncol; j++) {
result[i] += (matrix[i].m_val * x[j]);//m_Ncol --> Number of columns
}
}
return result;
}
c++ matrix vector struct adjacency-matrix
I have an adjacency matrix implemented in the following way:
struct Matrix {
int m_row;
int m_col;
float m_val;
};
vector<Matrix> matrix;
I have a vector of struct that only stores the values, rows and columns if the value is different from 0. I would like to implement an operator * in which I multiplied my matrix by the vector. My resulting adjacency matrix it is the following:
Adjacency matrix , the first parameter are row, the second column and the last the value.
My vector have 10 positions and all values of this are 1.
This is my operator * (this doesn't work correctly, doesn't obtain the correct result):
vector<float> SparseMatrix::operator*(const vector<float> x) const {
vector<float> result(x.size(), 0);
for (int i = 0; i < m_Nrows; i++) //m_Nrow --> Number of rows.
{
for (int j = 0; j < m_Ncol; j++) {
result[i] += (matrix[i].m_val * x[j]);//m_Ncol --> Number of columns
}
}
return result;
}
c++ matrix vector struct adjacency-matrix
c++ matrix vector struct adjacency-matrix
asked Nov 14 '18 at 23:37
desirée rodríguezdesirée rodríguez
13
13
2
Please post a Minimal, Complete, and Verifiable example. Also, why are you sizing theresult
vector tox.size()
, but then loop usingm_Nrows
? What ifm_NRows > x.size()
? You should always determine how far to go in a vector by usingvector::size()
, and not by some other external variable.
– PaulMcKenzie
Nov 14 '18 at 23:48
add a comment |
2
Please post a Minimal, Complete, and Verifiable example. Also, why are you sizing theresult
vector tox.size()
, but then loop usingm_Nrows
? What ifm_NRows > x.size()
? You should always determine how far to go in a vector by usingvector::size()
, and not by some other external variable.
– PaulMcKenzie
Nov 14 '18 at 23:48
2
2
Please post a Minimal, Complete, and Verifiable example. Also, why are you sizing the
result
vector to x.size()
, but then loop using m_Nrows
? What if m_NRows > x.size()
? You should always determine how far to go in a vector by using vector::size()
, and not by some other external variable.– PaulMcKenzie
Nov 14 '18 at 23:48
Please post a Minimal, Complete, and Verifiable example. Also, why are you sizing the
result
vector to x.size()
, but then loop using m_Nrows
? What if m_NRows > x.size()
? You should always determine how far to go in a vector by using vector::size()
, and not by some other external variable.– PaulMcKenzie
Nov 14 '18 at 23:48
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53310378%2foperator-multiply-vector-and-adjacency-matrix%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53310378%2foperator-multiply-vector-and-adjacency-matrix%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Please post a Minimal, Complete, and Verifiable example. Also, why are you sizing the
result
vector tox.size()
, but then loop usingm_Nrows
? What ifm_NRows > x.size()
? You should always determine how far to go in a vector by usingvector::size()
, and not by some other external variable.– PaulMcKenzie
Nov 14 '18 at 23:48