Generate a matrix with alternative positive and negative values with ones
    9 views (last 30 days)
  
       Show older comments
    
    Jorge Luis Paredes Estacio
 on 21 Jul 2023
  
    
    
    
    
    Commented: Jorge Luis Paredes Estacio
 on 21 Jul 2023
            Hello, Any idea how to generate a matrix with ones with positive and negative values. For example
We know, 
A=ones(n,1)=[1;1;1;1], if n=4
I would like a matrix like this:
A=[1;-1;1;-1]
However, n will change of size depending on the processed data.
On the other hand, I would like to generate a matrix with the following form
if n=10
A=[1;0.5;0;-0.5;-1;-.5;0;0.5;1;0.5], the n value can change depending on the uploaded data.
Thank you.
0 Comments
Accepted Answer
  John D'Errico
      
      
 on 21 Jul 2023
        
      Edited: John D'Errico
      
      
 on 21 Jul 2023
  
      Learn to use various tools in MATLAB. In this case, mod will help you. Forexample:
n = 4;
mod(1:n,2)
Does that get you close to what you want? You want a column. But that is easy. And you want +/-1. Also easy.
mod((1:n)',2)*2 - 1
Simple enough. Again, look for your target, and think of what you can do to get there.
As for the second case, it is not clear what general pattern you expect in there. If n was larger, would the step still be 0.5? Would this be a periodic function? Or a simple V-shape?
2 Comments
  John D'Errico
      
      
 on 21 Jul 2023
				
      Edited: John D'Errico
      
      
 on 21 Jul 2023
  
			A v-shape is most simply achieved using abs. Again, look for something that gets you close to your target. For example:
n = 9;
abs((1:n) - (n+1)/2)
Now we can scale those numbers. and put in a shift.
abs((1:n) - (n+1)/2)/2
V = abs((1:n) - (n+1)/2)/2 - 1
plot(V,'-o')
More Answers (2)
  Dyuman Joshi
      
      
 on 21 Jul 2023
        n = 10;
vec = (0:n-1)';
%Array A
A = cospi(vec)
%Array B
vec0 = vec+4;
B = 4*abs(vec0/8-floor(vec0/8+0.5))-1
See Also
Categories
				Find more on Operating on Diagonal Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



