Error creating matrix using a integer and vector in Matlab

1 Ansicht (letzte 30 Tage)
Syed Masoom
Syed Masoom am 15 Sep. 2020
Bearbeitet: Steven Lord am 16 Sep. 2020
I'm having trouble understanding why I can''t declare a matrix by using the following declaration A = [1 x x.^2 x.^3]; where x is from a column vector of 1x50 double

Akzeptierte Antwort

madhan ravi
madhan ravi am 15 Sep. 2020
Bearbeitet: madhan ravi am 15 Sep. 2020
A = x(:) .^ (0:3)
  6 Kommentare
Syed Masoom
Syed Masoom am 15 Sep. 2020
thank you, could you post that as your answer so i can accept it?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Steven Lord
Steven Lord am 16 Sep. 2020
Bearbeitet: Steven Lord am 16 Sep. 2020
madhan ravi has told you how to do this but I want to explain why your original approach didn't work.
If x is a column vector with 50 elements it has 50 rows (if it were a 1x50 array it would be a row vector.) The number 1 has 1 row. You can't horizontally concatenate an array with one row and an array with 50 rows and have them form a rectangular array as you can see here:
bar([1 2], [1 50])
You could make that 1 an array with the same number of rows as x:
x = (1:10).';
A1 = [ones(size(x)), x, x.^2, x.^3];
Though I'd probably reverse the order of the columns to match the convention of functions like polyfit and polyval.
A2 = x.^(3:-1:0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by