2015-10-27 4 views
0

Я хочу, чтобы иметь возможность создать простой вектор nx1, в котором каждое значение строки является константой (например, [2 2 ... 2 2] '), а также nx1, в котором указаны значения в строке 1 и строке n (например, [1 2 2 ... 2 2 1] '). Кроме того, как бы вы сгенерировали вектор, в котором вы чередуетесь между двумя значениями (например, [1 -1 1 -1 ...] ')?Создайте вектор nx1, который можно легко изменить, указав n

Есть ли способ генерировать эти векторы без ввода вручную каждого значения? Я попытался найти способ сделать это, просмотрев this Matlab documentation, но не смог разобраться. Спасибо!

ответ

0
const=2; %desired constant value 
len=5; %length of vector 
row1=1; %value of row 1 
rown=1; %value of row n 

x=const*ones(len,1); 
y=[row1; x(1:end-2); rown]; 

Пожалуйста, попробуйте этот код.

const=5; %desired absolute value 
Len=10; %length of vector 
k=1:Len; 

a=(-1).^k; 
b=const*a; 

Если вы хотите получить такое же абсолютное число, этот код будет в порядке.

const1=-3; %first value 
const2=5; %second value 
N=5; %half length of vector 

a=const1*ones(1,N); 
b=const2*ones(1,N); 

k=zeros(1,2*N); 

n=1:N; 
k(2*n)=a(n); 
k(2*n-1)=b(n); 

Если вы хотите получить любые два значения, попробуйте этот код.

+0

Я понимаю все, что вы написали, кроме части «x (1: end-2)», когда вы указываете y. Не могли бы вы объяснить эту логику? Спасибо! – kathystehl

+1

«конец» означает последний индекс вектора. В этом коде «1: конец-2» будет «1: 5-2». Итак, «x (1: end-2)» будет «x (1: 3)». Это просто «2 2 2», здесь. – KKS

+0

Отлично, спасибо! – kathystehl

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