2015-10-02 3 views
0

Мне нужно сгенерировать некоторые случайные 2D-точки (например, 30 точек) возле линии y = x, вставить их в матрицу, построить график и затем вычислить SVD матрицы. Но поскольку я новичок в MATLAB, я не знаю, как я могу создать желаемую матрицу.Создание двумерных точек возле y = x

+1

Вам нужно попробовать что-то, прежде чем задавать вопросы здесь. Посмотрите на функции Matlab 'rand' или' randn'. Вам также необходимо определить, что близко означает и что будет делать ваш домен (т. Е. Ограничения для 'x'). Вы также найдете функции 'plot' и' svd' полезными. Попробуйте сами и отправьте код, даже если это неправильно. – Dan

+0

oh человек эти люди никогда не будут воздерживаться @MoNo SO community не является своего рода волшебным полем, где вы ставите вопрос, на который вы получаете ответы, никто не поможет вам здесь, когда вы не сделаете свой первый шаг к – Abra001

ответ

1

Вот краткий пример, который я сделал: https://saturnapi.com/fullstack/2d-points-randomly-near-line

%// Welcome to Saturn's MATLAB-Octave API. 
%// Delete the sample code below these comments and write your own!' 

x = 13 + 6.*rand(20,1); 
y = x*0.7 + 0.5*rand(20,1); 

[X,Y] = meshgrid(x,y) 

figure(1); 
plot(x,y,'.'); 

%// Print plot as PNG with resultion of 60 pixels per inch 
print("MyPNG.png", "-dpng", "-r60"); 
3

Поскольку это выглядит как домашнее задание, я просто опубликовать некоторые общие идеи здесь.

randi можно использовать для получения полуслучайных целых чисел. Используя это, вы можете создать 2D-матрицу, дублируя массив и объединяя их. Таким образом: сгенерируйте столбец 30x1 и дублируйте его в столбец 30x2. Все строки будут иметь одинаковые две записи, т. Е. X = y.

Шум может быть добавлен к этому путем создания матрицы случайных чисел 30x2, для этого используйте rand и просто добавьте это к ранее созданной матрице.

Проверьте документацию на svd, чтобы увидеть, как работает разложение по сингулярным значениям, это довольно прямолинейно, если вы знаете свою линейную алгебру.

Наконец, для построения вы можете использовать различные инструменты, такие как image, imagesc, plot, surf и scatter, попробовать их и посмотреть, что лучше работает для вас.

Смежные вопросы