generate a random matrix with constraints
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
0 개 추천
hello,
I break a question about a problem I have to solve but I do not know if what I want to do is possible. I have a matrix (193.1) I will call A, is a column vector. I want to generate a matrix (193.3) or the sum of line 1 is equal to the value of A (1,1). the values taken by A are between 0.5 and -0.5, it's continues values. My matrix A does not always have the same value or complexity of the problem. If someone has an idea that would help me a lot. Thank you.
채택된 답변
Walter Roberson
2014년 4월 4일
댓글 수: 12
sory Walter, I just realized that the links led me to a function. I try to run the function but I do not. What should I do to make it work?
Use the download link to download a .zip. Unzip it into a convenient directory (but not under the MATLAB installation directory.) Add the path of the directory that results into the MATLAB path using pathtool. After that in your code,
cols_to_generate = 3;
for K = 1 : length(A)
newA(K,:) = randfixedsum(1, cols_to_generate, A(K), -0.5, 0.5);
end
and then your newA will be 193 x 3 of entries between -0.5 and +0.5, with the sum of the K'th row of newA being A(K)
thank you very much for you help!!
when i use the function i have a message error that says:
"Error in randfixedsum (line 95) x = (b-a)*x(p+repmat([0:n:n*(m-1)],n,1))+a; % Permute & rescale x"
I do not know how to solve the problem
Does it give you the error message? Why not tell us? Otherwise, step into the code and at that line, see what the values of all the variables are. So, here is how to solve your problem: http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/
I'm really sorry I started to make use of matlab and I really difficulties. I do not see how I can change the function i see the line where is my error but i don't know how to solve even with your tuto
Hang in there. Don't give up on MATLAB yet. It's not that different than debugging or using any other programming language. You'll learn eventually. Now, did you click in the margin of line 95 to set a breakpoint? A red spot will appear. Run your program and it will stop there with an arrow pointing at that line. Then hover the cursor over the variables in your code editor window, or look in the workspace panel, or type their name into the command window, to see what values they have. What are they?
My error line is as follows:
x = (b-a) * x (p + repmat ([0: n: n * (m-1)] n, 1)) + a; % Switches & rescale x
Where x is [0.5152 0.5152 0.5152]
a = -0.5
b = 0.5
n = 1
m = 3
sory and p=[3 1 2]
Image analyst can i show you something? please
You are missing a comma after (m-1)] and before the n. Try it like this:
index = p + repmat ([0: n: n * (m-1)], n, 1)
x = (b-a) * x (index) + a; % Switches & rescale x
Now that will also bomb if index is some fractional number, a negative number, or zero, so be sure you know what indexes you ever might expect to get.
just to be sure I get the correct code. Rhedgefund = Y (:, 1);
cols_to_generate = 3;
for K = 1: length (Y)
Neva (K, :) = randfixedsum (1 cols_to_generate, Y (K), -0.15, 0.15);
end
or Y is my data matrix 193 * 1 which is my target matrix.
추가 답변 (1개)
vachelard
2014년 4월 4일
Your two answers are good but not exactly give me the desired result. I'll try to explain better.
I expected returns monthly for 15 years. I try to generated a matrix whose sum line by line give me the monthly return of my base matrix. Knowing the values of my matrix generated can be negative. I tried this code but the values are just positive: mat = rand(193, 3); rowsum = sum(mat,2); mat = bsxfun(@rdivide, mat, rowsum);
카테고리
도움말 센터 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
