реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как создать матрицу
Грендайзер
сообщение Nov 26 2016, 09:12
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 18-04-11
Пользователь №: 64 451



Здравствуйте. Для создание тест бенча на верилоге, нужно создать матрицу, из векторов:

Код
А= 000001
     111111
     111111
     000001
     000001
     111111
     111111
          .
          .
          .
     111111
     111111
     000001

Размер матрицы 2048х6. В ручную набирать такую штуку долговато... как бы это поэлегантней сделать?
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Nov 26 2016, 11:24
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 18-04-11
Пользователь №: 64 451



Неужели никто такого не делал?! sad.gif
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 26 2016, 12:20
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 412
Регистрация: 22-02-13
Пользователь №: 75 748



Так?

Код
a = [0 0 0 0 0 1;
        1 1 1 1 1 1;
        1 1 1 1 1 1;
        0 0 0 0 0 1];
A = repmat(a, 2048/4, 1);
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Nov 26 2016, 12:42
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 18-04-11
Пользователь №: 64 451



Ух ты спасибо. А то я уже искусственный приём хотел применить с созданием векторов и их вращением и прочими заморочками. Короче сделать всё правой рукой через левое ухо. Но у Вас конечно значительно больше силь ву пле biggrin.gif
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Nov 26 2016, 14:56
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 18-04-11
Пользователь №: 64 451



Ещё раз здравствуйте. Подскажите ещё пожалуйста. Как записать Вышеописанную матрицу в .txt файл, вот так:
Код
000001
111111

А то у меня либо так пишет:
Код
0101010...

т.е. в строку, либо так:
Код
0  0  0  0  0  1
1  1  1  1  1  1
1  1  1  1  1  1

т.е. через пробелы. Вообщем никак не выходит sad.gif
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 26 2016, 17:52
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 412
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(Грендайзер @ Nov 26 2016, 17:56) *
Вообщем никак не выходит sad.gif

Код
dlmwrite('test.txt',A,'delimiter','');
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Nov 26 2016, 18:23
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 18-04-11
Пользователь №: 64 451



Grizzzly спасибо большое. Правда я уже сам файлик подправил (правка -> найти и заменить). Но это как то не по инженерному sm.gif У Вас лучше.
Go to the top of the page
 
+Quote Post
Мур
сообщение Dec 4 2016, 16:21
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 679
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Я не спец в Матлабе, но стал вопрос коэффициентов для PLL, когда надо подобрать приемлемый вариант итога. Набросал последовательность, зная, что ограничение по верхней частоте в 1066МГц. Опора в 12МГц.

>> x= [1:1:88];
>> y= [1:1:88];% для двумерного массива смена коэффициентов
>> F=repmat(0,[88 88 1]); % здесь итог
>> F= 12000000*(.x+1)/(.y+1);
F= 12000000*(.x+1)/(.y+1);

Error: Unexpected MATLAB operator.

Хотел посмотреть потом двумерный массив, чтобы выбрать нужное.

Подскажите где ошибка? Спасибо!
Go to the top of the page
 
+Quote Post
des333
сообщение Dec 4 2016, 18:30
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 038
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(Мур @ Dec 4 2016, 19:21) *
F= 12000000*(.x+1)/(.y+1);

Error: Unexpected MATLAB operator.

Хотел посмотреть потом двумерный массив, чтобы выбрать нужное.

Подскажите где ошибка? Спасибо!


А что за вошебные точки перед x и y?
Если Вы хотели поэлементую операцию, то тогда точку нужно ставить перед "+"


--------------------
Go to the top of the page
 
+Quote Post
Мур
сообщение Dec 6 2016, 17:59
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 679
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



>> F=repmat(0,[88 88 1]);
>> for x=1:88
for y=1:88
F(x,y)=12000000*(x+1)/(y+1);
end
end
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th May 2017 - 13:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016